摘要:假如你只想支持及更高版本那么大可丟掉前面定義的那個函數而只用原生的實現。跳過這個函數中新增的代碼首先檢測原生對象是否存在如果存在則返回它的新實例。如果原生對象不存在則檢測對象。如果這兩種對象都不存在就拋出一個錯誤。
XMLHttpRequest 對象
IE7+、Firefox、Opera、Chrome 和 Safari 都支持原生的 XHR 對象,在這些瀏覽器中創建 XHR 對象要像下面這樣使用 XMLHttpRequest 構造函數。
var xhr = new XMLHttpRequest();
假如你只想支持 IE7 及更高版本,那么大可丟掉前面定義的那個函數,而只用原生的 XHR 實現。但是,如果你必須還要支持 IE 的早期版本,那么則可以在這個 createXHR()函數中加入對原生 XHR對象的支持。
function createXHR() { if (typeof XMLHttpRequest != "undefined") { return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined") { if (typeof arguments.callee.activeXString != "string") { var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"], i, len; for (i = 0, len = versions.length; i < len; i++) { try { new ActiveXObject(versions[i]); arguments.callee.activeXString = versions[i]; break; } catch (ex) { //跳過 } } } return new ActiveXObject(arguments.callee.activeXString); } else { throw new Error("No XHR object available."); } } var xhr = createXHR();
這個函數中新增的代碼首先檢測原生 XHR 對象是否存在,如果存在則返回它的新實例。如果原生對象不存在,則檢測ActiveX 對象。如果這兩種對象都不存在,就拋出一個錯誤。然后,就可以使用下面的代碼在所有瀏覽器中創建 XHR 對象了。
var xhr = createXHR();
由于其他瀏覽器中對 XHR 的實現與 IE 最早的實現是兼容的,因此就可以在所有瀏覽器中都以相同方式使用上面創建的 xhr 對象。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84710.html
摘要:的理解函數與其他語言函數最大的不同在于,其不介意傳入多少參數以及參數的類型比如函數的形參有兩個,但是調用函數傳入的參數可以寫一個,三個或不寫參數對應等,解析器都可以正常解析,這是因為中參數在內部是以一個數組形式來表示,故而不需要關系傳入參數 ECMAScript function的理解 ECMAScript 函數與其他語言函數最大的不同在于,其不介意傳入多少參數以及參數的類型...
showImg(http://img3.douban.com/lpic/s8958650.jpg); 0x00 javascript組成 ECMAScript(-265)核心語言部分 DOM文檔對象模型(DOM1、2、3) BOM瀏覽器對象模型(提供與瀏覽器交互的接口和方法) 0x01 async 異步加載 執行順序不定 charset defer 延遲加載,立即下載腳本但不執行 src ...
摘要:函數聲明提升定義函數有兩種方式函數聲明函數表達式報錯,該函數不存在上述代碼出現不同的執行結果,是因為函數聲明的一個重要特征函數聲明提升,意思是函數聲明會被提升到頂部,即首先讀取函數聲明。 函數聲明提升 定義函數有兩種方式: 函數聲明 sayName(123);//123 function sayName(name){ alert(name); } 函數表達式 sayName(1...
摘要:下面來看一個例子繼承屬性繼承方法在這個例子中構造函數定義了兩個屬性和。組合繼承最大的問題就是無論什么情況下都會調用兩次超類型構造函數一次是在創建子類型原型的時候另一次是在子類型構造函數內部。 組合繼承 組合繼承(combination inheritance),有時候也叫做偽經典繼承,指的是將原型鏈和借用構造函數的技術組合到一塊,從而發揮二者之長的一種繼承模式。其背后的思路是使用原型鏈...
摘要:元素,當瀏覽器不支持腳本數據結構有如下中基本數據結構操作符,用來檢測給定變量的數據類型結果都是,聲明沒初始化,使用生命變量但未對其進行初始化的,默認沒有進行聲明,傳遞給函數會導致一個錯誤,對于未聲明變量這么操作沒什么意義比如,也是返回。 javascript簡史 微軟IE和網景在瀏覽器上的競爭 ECMAScript,由ECMA-262定義,提供核心語言功能 `ECMA 歐洲計算機制...
閱讀 3606·2021-11-15 11:38
閱讀 2801·2021-11-11 16:55
閱讀 2551·2021-11-08 13:22
閱讀 2628·2021-11-02 14:45
閱讀 1304·2021-09-28 09:35
閱讀 2568·2021-09-10 10:50
閱讀 463·2019-08-30 15:44
閱讀 2775·2019-08-29 17:06