爲attachEvent
,你需要"on"
前綴事件名稱,例如
this.attachEvent("onload", onload);
這不同於將被省略的DOM事件addEventListener
,這就需要"on"
。
正如Marcel指出的那樣,對於XMLHttpRequests,您需要綁定到onreadystatechange
,並檢查處理程序內部的readyState
屬性。 XMLHttpRequest
不支持onload
。
在另一方面,你應該避免檢查瀏覽器和檢查功能的支持來代替。 Internet Explorer 9的支持addEventListener
,例如:
var onreadystatechange = function() {
if (this.readyState == 4)
console.log("intercepting: " + this.status + " " + this.responseText);
};
if(!this.addEventListener && this.attachEvent){
console.log("it's IE<9...");
xhr.attachEvent("onreadystatechange", onreadystatechange);
}
else
// use addEventListener
在現實中,雖然,你不會一個XHR對象上使用attachEvent
或addEventListener
;我懷疑IE7和更低版本會玩這個,所以你只需直接綁定到事件屬性:
xhr.onreadystatechange = function() {
if (this.readyState == 4)
console.log("intercepting: " + this.status + " " + this.responseText);
}
什麼是'這個'? ;-) – 2011-04-20 10:01:01