我正在使用Greasemonkey腳本。我需要做的是在函數被調用之前執行腳本,或者在函數的開頭執行腳本。在調用函數之前執行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'節目?你可以用'arguments'替換'new Array(true)'。 – 2012-03-05 22:48:43