Hàm này bên trong một đối tượng xác định sự kiện xử lý đối tượng xmlhttprequest. Như một số trình duyệt không chấp nhận phương pháp addEventListener, tôi đã làm một thử nghiệm vì vậy nếu không, nó sẽ xác định onstatechange:Cách phát hiện xem trình duyệt có chấp nhận các sự kiện xmlhttprequest bởi addEventListener không?
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...");
}
}
Các "este" là "này" ngoài chức năng (var este = này;)
"reqSwitch" sẽ trỏ đến funcion phải. Vấn đề là thử nghiệm este.Request.hasOwnProperty ("onload") chỉ hoạt động trong Safari. Làm cách nào để tôi có thể thực hiện kiểm tra trình duyệt chéo để phát hiện xem trình duyệt có hoạt động với addEventListener không?
giết phần hasOWnProperty, các phương pháp đó được kế thừa: 'if (este.Request.onload! == undefined)' – dandavis