我正在尝试在JavaScript中重载XMLHttpRequest.*方法,以便网页可以在不使用任何侵入式回调的情况下确定是否发生了Ajax请求。现在,在大多数JS框架中使用类似这样的代码相对有效:
XMLHttpRequest.prototype.getResponseHeader = function() {
alert('O hai, looks like you made an AJAX request.');
}
然而,这里有两个问题:
- getResponseHeader不能再像以前一样作为getResponseHeader使用。
- 它不适用于简单的AJAX示例,例如:
xmlhttp.open("GET","simple.html",false);
XMLHttpRequest.open()
或者任何我可以连接到它的方法。我已经尝试了无数种范例(工厂、克隆、包装——大多数导致无限递归),但是没有什么似乎能够起作用。也许这是不可能的。有什么想法吗?
this
,以保持原始调用的作用域。 - Gabriele Petriolitemp
变量就不会放置在全局作用域中。 - AnthonyWJones