(function (send) {
XMLHttpRequest.prototype.send = function () {
this.addEventListener('readystatechange', function() {
console.log('readyState changed');
}, false);
send.apply(this, arguments);
};
})(XMLHttpRequest.prototype.send);
这可行,但它似乎正在影响其他框架(如 jQuery)。当我使用上面的代码时,我的 jQuery ajax 调用没有完成(IE7 + IE8)。
有没有办法给事件一个新的别名,这样它就不会引起任何冲突(我只是假设这是问题所在)?
而且我不能使用this.onreadystatechange
,因为 jQuery 正在覆盖它(参见 Fiddle)。
绑定事件侦听器后,代码似乎会静默失败,因此我无法使用控制台进行调试。
在 ie8 和 ie9 模式下比较,注意 ie8 中的控制台是空的
我需要这个的原因是我想要一个用于另一个框架(GWT)的全局 ajax 处理程序。我现在使用 jQuery 只是为了测试它。
编辑:看起来只有 ie9 支持addEventListener
. 但是,attachEvent
在 ie7-8 中的 XHR 对象上似乎不存在。