(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 calls doen't complete (IE7 + IE8).
Есть ли способ дать событию новый псевдоним, чтобы он не вызывал конфликтов (я просто предполагаю, что это проблема)?
И я не могу использовать this.onreadystatechange
, поскольку jQuery перезаписывает его (см. Fiddle).
Как только я свяжу слушателя событий, код, кажется, терпит неудачу, поэтому я не могу использовать консоль для отладки.
Сравнить в режиме ie8 vs ie9 и заметить, что пустая консоль в ie8
Причина, по которой мне это нужно, это то, что я хочу глобальный обработчик ajax для другой структуры (GWT). Я использую jQuery только для его тестирования.
Изменить: Похоже, только ie9 поддерживает addEventListener
. Тем не менее, attachEvent
, похоже, не существует на объекте XHR в ie7-8.