XMLHttpRequest.prototype.open
ページ上の Ajax 呼び出しをハイジャックする関数をオーバーロードする Greasemonkey スクリプトを作成しています。
私は次のコードを使用しています:
// ==UserScript==
// @name name
// @namespace namespace
// @description desc
// @include https://url*
// @version 1.0
// ==/UserScript==
if (XMLHttpRequest.prototype) {
//New Firefox Versions
XMLHttpRequest.prototype.realOpen = XMLHttpRequest.prototype.open;
var myOpen = function(method, url, async, user, password) {
//call original
this.realOpen (method, url, async, user, password);
myCode();
}
//ensure all XMLHttpRequests use our custom open method
XMLHttpRequest.prototype.open = myOpen ;
}
これは、GM API を使い始めるまでうまく機能します。次の行をメタ セクションに追加すると、コードが壊れてmyOpen
呼び出されなくなります。
// @grant GM_getValue
これは実際には任意の GM API である可能性があり、私のコードは壊れています。私のスクリプトの他のすべては、GM API を使用しても問題なく動作しますXMLHttpRequest.prototype.open
。壊れるのは関数のオーバーロードだけです。
を使用して回避できますがwaitForKeyElements
、使用する間隔が原因でブラウザーの速度が低下するため、好きではありません。
GM API がXMLHttpRequest.prototype.open
呼び出しの過負荷を解消する理由はありますか?
どうもありがとう、
ピーター