iview图片上传不兼容ie10,因为在上传同一张图片的时候ie10上传不成功,下面是解决方法。
methods:{
uploadSuccess:function(resp, file, fileList){
window.filePic=file.response.data.pic;
file.url=file.response.data.url;
this.attIds.push(file.response.data.attId);
this.$emit('input',this.attIds);
//console.log(this.attIds); ///att/download/b8abe3bb7e234646bb90b79d65c85a3f
//兼容ie10操作
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if(isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if(fIEVersion == 10) {
var ofiles = document.getElementsByClassName("ivu-upload-input");
var oinput,oparent,oform;
for(var i=0;i<ofiles.length;i++){
oinput = ofiles[i];
oparent = oinput.parentElement;
oform = document.createElement('form');
oform.appendChild(oinput);
oparent.appendChild(oform);
oform.reset();
//重置操作后
oparent.appendChild(oinput);
oparent.removeChild(oform);
}
}
}
},
在图片上传成功的函数中,我们先判断改浏览器是否是ie10,然后获取图片上传<input>的class,ie10的问题在于删除一个图片后再上传当前图片上传不成功,所以我们只需要在reset()之后,重新追加iview里面的属性就可以了。