私はGreasemonkeyスクリプトで作業しています。私がする必要があるのは、関数が呼び出される前にスクリプトを実行するか、関数の始めにスクリプトを実行することです。関数が呼び出される前に、Greasemonkeyスクリプトでコードを実行します。
問題は、関数が文書内にあり、Greasemonkeyファイル内にないことです。関数を上書きするようになりますが、スクリプトの終了後に実行する必要があるため、関数を上書きしません。
ここに私の完全なグリースモンキーのコードは、私が欠けているのか分からない:
<pre>// ==UserScript==
// @name appname
// @version 1.0.0
// @author me
// @description blah
// @include http://www.runhere.net/*
// @exclude http://www.notinhere.com/*
// @run-at document-end
// ==/UserScript==
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
function main() {
var originalFunction = unsafeWindow.add_comment;
unsafeWindow.add_comment = function(go_last_page) {
alert("if it is shown, then works!");
originalFunction.apply(unsafeWindow, new Array(true));
}
}
//Load JQuery and execute function
addJQuery(main);</pre>
を私が呼び出す必要がある関数はページに位置し、add_comment
と呼ばれています。それはブール型である単一のパラメータを持っています。私はjavascriptに精通していないが、私はこの単純な拡張を行う必要があります。
本当にありがとうございます。
は 'alert'ショーをしていますか? 'new Array(true)'を 'arguments'に置き換えることができます。 –