(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会覆盖它(见小提琴)。
当我绑定事件监听器时,代码似乎无声地失败,因此我无法使用控制台进行调试。
Compare in ie8 vs ie9 mode and notice that the console is empty in ie8
我需要这个的原因是我想要另一个框架(GWT)的全局ajax处理程序。我现在只使用jQuery进行测试。
编辑:看起来只有ie9支持addEventListener
。但是,{7}中的XHR对象似乎不存在attachEvent
。
答案 0 :(得分:1)
我们遇到类似的问题,jquery在IE8上失败了。我假设你正在提出跨域请求。 Jquery通过XMLHttpRequest执行ajax,但是IE8已经用XDomainRequest替换了XMLHttpRequest对象,并且jquery人不支持它。所以对于IE8,你将不得不修改代码以使用带有jquery的XDomainRequest。
查看链接