Я создал скрипт Greasemonkey, который заменяет функцию страницы:
(function() {
var oldFunc = func;
func = function() {
oldFunc();
// other stuff
};
)();
Я всегда предполагал, что этот скрипт будет работать как в Gresemonkey, так и в Chrome, и прочитал, что Chrome не поддерживает unsafeWindow
поэтому вводил скрипт на страницу, конвертируя функцию в строку и используя setTimeout
:
setTimeout("(function(){var old=func;func=function(){old();/*other stuff*/}}())", 0);
. Это отлично работает в Greasemonkey, но абсолютно ничего не дает в Chrome.Он явно не стреляет, но в журнале тоже ничего не появляется.Я пробовал несколько других стилей инъекций, но не могу заставить что-либо работать.(Для тестирования я также добавил alert()
в начало функции.)
setTimeout(..., 0)
- ничего - Запуск функции в области видимости, без внедрения встраница - без предупреждения, но "func не определено" в консоли
document.href = "javascript:..."
- ничего document.body.addEventListener("load", ...)
- ничего
Все это с@run-at document-end
.
К сожалению, это мой первый пользовательский скрипт в Chrome, и я не знаю, как его отладить, даже после часа или около того, что он гуглит и ковыряется в SO.Любая помощь?
Актуальный скрипт, в данный момент работающий в Greasemonkey: http://pastebin.com/HtLVjYHg