javascript を Web ページに挿入し、作成されたすべての ajax リクエストを取得しようとしています。
function addXMLRequestCallback(send_callback) {
var oldSend, i;
if(XMLHttpRequest.send_callbacks) {
XMLHttpRequest.send_callbacks.push(send_callback);
} else {
XMLHttpRequest.send_callbacks = [send_callback];
oldSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function () {
for (i = 0; i < XMLHttpRequest.send_callbacks.length; i++) {
XMLHttpRequest.send_callbacks[i](this, arguments);
}
oldSend.apply(this, arguments);
}
}
}
*SOのどこかにコピー
この関数を使用すると、すべての send() イベントをキャプチャできますが、XMLHttpRequest.onload を必要とする XMLHttpRequest.responseText もキャプチャしたいと考えています。XMLHttpRequest.onload は実際には関数ではないため、上記のメソッドは機能しません。onload イベントに関数を直接割り当てると、最終的にインスタンスを使用する他のスクリプトによってオーバーライドされます。
オーバーライドを取得せずに onload イベントにコールバックを割り当てることができる方法はありますか?