本文主要是介绍dojox/form/Uploader控件ie不兼容,无法捕获onComplete事件解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在用dojox/form/Uploader控件做附件的上传,按照官网的样例,ff,chrome均正常,可是在ie中出现如下现象:
1、上传的后台是能成功上传,可是onComplete时间无法捕获,并且出现ie下载框
2、关闭下载弹出框后,无法再次进行上传
google了很多网上资料,均没有很好的解决方案。经过几天的摸索研究,最终在官网上找到了方法,次问题为dojox上传控件的一个bug。官方的解答为:
https://bugs.dojotoolkit.org/ticket/17461
最终解决方案:修改dojox/form/uploader/_IFrame文件,修改为:
//----------------增加部分
var _handleAs = "json";
if(has("ie")){
_handleAs ="text";
}
request.post(url, {
form: sendForm,
handleAs: _handleAs,
content: data
}).then(function(result){
domConstruct.destroy(sendForm);
if(data["ERROR"] || data["error"]){
self.onError(result);
}else{
self.onComplete(result);
}
}, function(err){
console.error('error parsing server result', err);
domConstruct.destroy(sendForm);
self.onError(err);
});
备注:经过测试此bug在ie10以上版本不存在,原因ie内核进行了修复完善
这篇关于dojox/form/Uploader控件ie不兼容,无法捕获onComplete事件解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!