對象內部的這個函數定義了xmlhttprequest對象的事件處理。由於一些瀏覽器沒有接受addEventListener方法,我做了測試,以便如果沒有,它將定義onstatechange:如何檢測瀏覽器是否接受addEventListener的xmlhttprequest事件?
var reqEngatilhar = function(){
este.concluido = false;
timeoutId = setTimeout(reqTimeout, este.timeout);
if(este.Request.hasOwnProperty("onload")){
este.Request.addEventListener("error", reqErro, true);
este.Request.addEventListener("progress", reqMon, false);
este.Request.addEventListener("abort", reqAbort, false);
este.Request.addEventListener("load", reqFim, false);
console.log("$Http reqEngatilhar usando eventos...");
} else {
este.Request.onreadystatechange = function (e) { reqSwitch(e); };
console.log("$Http reqEngatilhar usando onreadystatechange...");
}
}
的「角城」是「這」之外的功能(VAR角城=此)
「reqSwitch」將指向正確的功能。問題是測試este.Request.hasOwnProperty(「onload」)僅適用於Safari。我如何進行跨瀏覽器測試來檢測瀏覽器是否可以使用addEventListener?
殺死hasOWnProperty部分,那些方法被繼承:'if(este.Request.onload!== undefined)' – dandavis