gpt4 book ai didi

javascript - 即 obj.attachEvent() 的例子

转载 作者:行者123 更新时间:2023-11-30 09:05:07 25 4
gpt4 key购买 nike

有人知道 obj.attachEvent 在 ie 上是如何工作的吗?

我尝试了几个示例,但它们不起作用。这也与 ie7 兼容吗?

我试过的是这样的:

var onload = function( ) {
console.log("intercepting: " + this.status + " " + this.responseText);
};

if($.browser.msie){
console.log("it's IE...");
this.attachEvent("load", onload);
}

以上所有内容都在 XMLHtppRequest 中。

最佳答案

对于attachEvent,您需要在事件名称前加上"on",例如

this.attachEvent("onload", onload);

这与 DOM 事件的 addEventListener 不同,后者需要省略 "on"

正如 Marcel 所指出的,对于 XMLHttpRequests,您需要绑定(bind)到 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 对象上使用 attachEventaddEventListener;我怀疑 IE7 和更低版本会很好地处理这个问题,所以您可以直接绑定(bind)到事件属性:

xhr.onreadystatechange = function () {
if (this.readyState == 4)
console.log("intercepting: " + this.status + " " + this.responseText);
}

关于javascript - 即 obj.attachEvent() 的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5728509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com