或許你可以嘗試這樣的事:
XMLHttpRequest.prototype.real_open = XMLHttpRequest.prototype.open;
var your_open_method = function(sMethod, sUrl, bAsync, sUser, sPassword) {
alert('an XHR request has been made!');
this.real_open(sMethod, sUrl, bAsync, sUser, sPassword);
}
XMLHttpRequest.prototype.open = your_open_method;
當然,取而代之的警報,你可以有自己的跟蹤代碼。我試過了,它可以處理'普通的javascript'請求以及使用jquery進行的請求。我認爲它應該工作,不管用於提出請求的框架。
編輯4月21日 我真的不知道如何擴展ActiveXObject。我的猜測是,這樣的事情應該工作:
XHR = new ActiveXObject("Microsoft.XMLHTTP");
var XHR.prototype.old_open = XHR.prototype.open;
var new_open = function(sMethod, sUrl, bAsync, sUser, sPassword) {
alert('an IE XHR request has been made!');
this.old_open(sMethod, sUrl, bAsync, sUser, sPassword);
}
XHR.prototype.open = new_open;
不幸的是(或者也許不是),我沒有IE瀏覽器,所以我不能測試它。但是,讓它旋轉一下,讓我知道它是否有竅門。
我工作的代碼,將插入其他民族代碼(有點像書籤)。我不知道他們使用了什麼框架,但我需要捕捉Ajax事件。 – mkoryak 2009-04-16 16:14:05