Ajaxupload.js在最新版chrome 83版浏览器oncomplete失效问题解决方法

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

posted on 2020-06-02 15:37  带不走放不下  阅读(341)  评论(0编辑  收藏  举报