1. 程式人生 > >ajaxfileupload.js 相容ie9,10

ajaxfileupload.js 相容ie9,10

在使用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;
            }
        }