我試圖更新一箇舊的JavaScript函數來檢測對AJAX(即XmlHttpRequest對象)的支持。我在網上查看過(包括SO),並找到了各種解決方案,但我不確定哪種方法對於簡單檢測支持最有效。檢測AJAX/XmlHttpRequestSupport的最佳實踐
當前功能是:
function IsSyncAJAXSupported()
{
var isSyncAJAXSupported = true;
var xmlHttp = null;
var clsids = ["Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for(var i=0; i<clsids.length && xmlHttp == null; i++) {
try {
xmlHttp = new ActiveXObject(clsids[i]);
} catch(e){}
}
if(xmlHttp == null && MS.Browser.isIE)
{
isSyncAJAXSupported = false;
}
return isSyncAJAXSupported;
}
在Firefox 3,以上給出了錯誤,因爲MS是未定義的。
我意識到使用庫會更好,但這不是短期的選擇。我們只支持IE6及以上版本的Firefox,Safari/WebKit和Opera。
獲取XmlHttpRequest支持的真/假的最佳方式是什麼?
這是jQuery如何做到的,儘管我不確定改變它的最好方法,以便它返回一個布爾值。 var xhr = window.ActiveXObject?新的ActiveXObject(「Microsoft.XMLHTTP」):new XMLHttpRequest(); – tjrobinson 2008-11-20 16:41:45