Я работаю над скриптом Greasemonkey. Что мне нужно сделать, это выполнить скрипт перед вызовом функции или выполнить скрипт в начале функции.
Проблема в том, что функция находится в документе, а не в файле Greasemonkey. Это будет похоже на перезапись функции, но без перезаписи, потому что она должна быть выполнена после завершения сценария.
Вот мой полный код Greasemonkey, я не знаю, что мне не хватает:
<code><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);
Функция, которую мне нужно вызвать, находится на странице и называется add_comment
. У него есть единственный параметр, который является логическим типом. Я не знаком с javascript, но мне нужно сделать это простое расширение.
Я очень ценю вашу помощь.