2012-06-21 468 views
1

我是AJAX的初學者。我有一個問題,我無法在互聯網上找到,所以我來到這裏:)。我的第一個問題是與下面的代碼塊有關。ajax即跨瀏覽器activexobject問題

function createXHR() { 
    var iexhr...; 

    iexhr = ["MSXML2.XMLHttp.7.0", "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "MSXML3.XMLHttp", "Microsoft.XMLHttp"]; 
} 

我對上述代碼的問題是:在我的搜索和研究中,我收集了使用不同版本xmlhttprequest的代碼示例。我想創建一個跨瀏覽器xhr,並想知道是否所有這些版本都很重要,還是應該只使用一個?

回答

0

我不認爲你想要這些。

真的有兩個版本的XHR,你需要擔心:window.ActiveXObject("Microsoft.XMLHTTP") oldIE和window.XMLHttpRequest()其他人。

你會看到通常的模式是這樣的:

if(window.XMLHttpRequest){ 
    return new window.XMLHttpRequest(); 
} 
else { 
    return new window.ActiveXObject("Microsoft.XMLHTTP"); 
} 

或者類似的東西,這取決於你想做什麼。

然而,XHR比返回對象有更多的東西,比如監視狀態和錯誤,所以這正是人們爲什麼使用類庫的原因。不要重新發明輪子。