Для attachEvent
необходимо добавить к имени события префикс "on"
, например,
this.attachEvent("onload", onload);
Это отличается от DOM Events 'addEventListener
, что требует пропуска "on"
.
Как указал Марсель, для XMLHttpRequest вам нужно вместо этого связать с onreadystatechange
и проверить свойство readyState
внутри обработчика.onload
не поддерживается для XMLHttpRequest
.
С другой стороны, вам следует избегать проверки браузера и проверки поддержки функций.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
В действительности вы бы не использовали attachEvent
или addEventListener
для объекта XHR;Я сомневаюсь, что IE7 и ниже будут хороши с этим, так что вы просто привязали бы к свойству события напрямую:
xhr.onreadystatechange = function () {
if (this.readyState == 4)
console.log("intercepting: " + this.status + " " + this.responseText);
}