ajaxfileupload.js 相容ie9,10
阿新 • • 發佈:2018-11-05
在使用ajaxfileupload.js上傳檔案時,ie9和ie10會報INVALID_CHARACTER_ERR (5)的錯誤,導致無法上傳成功;
網上查了一系列處理方式:
如:
把程式碼 if(window.ActiveXObject) { var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');if(typeof uri== 'boolean'){ io.src = 'javascript:false'; } else if(typeof uri== 'string'){ io.src= uri; } } //修改成 if(window.ActiveXObject) { if(jQuery.browser.version=="9.0" || jQuery.browser.version=="10.0"){ var io = document.createElement('iframe'); io.id= frameId; io.name = frameId; }else if(jQuery.browser.version=="6.0" || jQuery.browser.version=="7.0" || jQuery.browser.version=="8.0"){ var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />'); if(typeof uri== 'boolean'){ io.src = 'javascript:false'; } else if(typeof uri== 'string'){ io.src = uri; } } }
但jq版本問題並未成功。後查到
因此在createUploadIframe判斷下ie版本即可;
具體程式碼如下 :
var isIE9 = ''; //判斷是否是ie9,10 if (navigator.userAgent.indexOf("MSIE 9.0")>0 || navigator.userAgent.indexOf("MSIE 10.0")>0) { isIE9 = true; } if(window.ActiveXObject && !isIE9) { var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />'); if(typeof uri== 'boolean'){ io.src = 'javascript:false'; } else if(typeof uri== 'string'){ io.src = uri; } }