Ajaxupload.js在最新版chrome浏览器oncomplete失效问题解决方法
很多老的项目用ajaxupload 上传文件,但chrome浏览器升级到83版本后,oncomplete 方法就失效了。
查看了ajaxupload源码后,Github:Ajaxupload.js
找到以下代码:
_createIframe: function(){
// We can't use getTime, because it sometimes return
// same value in safari :(
var id = getUID();
// We can't use following code as the name attribute
// won't be properly registered in IE6, and new window
// on form submit will open
// var iframe = document.createElement('iframe');
// iframe.setAttribute('name', id);
var iframe = toElement('<iframe src="javascript:false;" name="' + id + '" />');
// src="javascript:false; was added
// because it possibly removes ie6 prompt
// "This page contains both secure and nonsecure items"
// Anyway, it doesn't do any harm.
iframe.setAttribute('id', id);
iframe.style.display = 'none';
document.body.appendChild(iframe);
return iframe;
},
把var iframe = toElement('<iframe src="javascript:false;" name="' + id + '" />');
改成var iframe = toElement('<iframe src="about:blank" name="' + id + '" />');
后,
oncomplete恢复正常。