最新突然有一批用户反馈说数据上传报了空弹窗错误,由于最近发了版本,排查下来,发现就谷歌浏览器报错,然后发现就升级到了最新的83版本,才会有此错误
很多老的项目用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恢复正常。