JS高程筆記 - ajax

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 對象了。code

var xhr = createXHR();

因爲其餘瀏覽器中對 XHR 的實現與 IE 最先的實現是兼容的,所以就能夠在全部瀏覽器中都以相同方式使用上面建立的 xhr 對象。對象

相關文章
相關標籤/搜索