在项目中,有时候免不了做文件上传,其中有formData,但是formData的兼容性在IE10,如果想要兼容更低版本的浏览器,我们可以用iframe来实现。
首先我们要说,给你一个接口,去做文件上传,使用ajax来做文件上传,目前我试过的方法是不行的,所以我们要用表单来做文件上传,上传以后要拿到后台的返回数据,但是不使用ajax还拿不到,而且使用form表单会发生页面跳转,所以我们使用iframe来做无刷新表单提交,同时拿到后台返回的数据。
不多bb,上代码
<form action="后台接口" target="target1" enctype="multipart/form-data">//enctype一定要写,这个代表上传的文件的类型 <input type="file" id="file> <input type="button" value="上传" id="btn"> </form>
下面是js代码
var iframe1 = document.createElement("iframe")
iframe1.width=""
iframe1.height=""
iframe1.name=""
iframe1.id=""
iframe1.setAttribute()
//在ie下
if (iframe1.attachEvent) {
var responData = this.contentWindow.document.body.innerText
responData就是你拿到的后台的返回值
}
在普通浏览器下
iframe1.onload=function(){
var responData = this.contentWindow.document.body.innerText
}
没办法 就是这么简单。如果产品要求兼容IE9一下,那么不想用jq插件的情况下 ,这个还是个不错的选择