使用
.onreadystatechange不起作用,因为我正在使用jQuery进行测试,并且jQuery的ajax方法可以操纵并删除该
onreadystatechange属性。
但是,为
loadendIE 添加事件侦听器的方法在所有地方都可以正常工作。对于IE,我改为设置时间间隔-不是最佳解决方案,但它可以满足我的需要。
我只打算将此脚本用于IE8 +和现代浏览器。
XMLHttpRequest.prototype.send = (function(orig){ return function(){ _core._fireAjaxEvents('pre', this._HREF); if (!/MSIE/.test(navigator.userAgent)){ this.addEventListener("loadend", function(){ _core._fireAjaxEvents('post', this._HREF); }, false); } else { var xhr = this, waiter = setInterval(function(){ if(xhr.readyState && xhr.readyState == 4){ _core._fireAjaxEvents('post', xhr._HREF); clearInterval(waiter); } }, 50); } return orig.apply(this, arguments); };})(XMLHttpRequest.prototype.send);


