オブジェクト内のこの関数は、xmlhttprequestオブジェクトのイベント処理を定義します。一部のブラウザでは、addEventListenerメソッドを受け入れていなかったとして、それがにOnStateChangeを定義するわけではないので、もし、私がテストをした:ブラウザがxmlhttprequestイベントをaddEventListenerで受け入れるかどうかを検出するにはどうすればいいですか?
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