[Greasemonkey] Хук функции
Пишу Greasemonkey скрипт.
Как сделать хук какой-либо функции на странице? Можно даже не перехват, а просто словить событие (postevent), которое будет вызываться после того, как сработала какая-нибудь определенная JS-функция на странице. |
обычно функция заменяется на свою, а в своей уже вызывается старый вариант, потом действия какие-то.
|
Цитата:
|
|
допустим, надо отловить глобальную функцию func1.
делаем так: (function() { var win = typeof unsafeWindow == 'undefined' ? window : unsafeWindow; ... var old_func1 = win.func1; // сохраняем оригинальную функцию win.func1 = function() { // тут действия перед вызовом runActionsBefore(...); // вызов функции var result = old_func1.apply(this, arguments); // действия после вызова runActionsAfter(...); return result; }; })(); |
Цитата:
setPointer = new Proxy(setPointer, { apply: function(method, context, args) { alert("setPointer was invoked"); method(); } }); Не работает. Если я конечно вызову setPointer() в конце этого кода, то сработает, но само оно не вызывается, что странно, ведь функция setPointer() вызывается на странице. |
Решено:
window.recount = function() { // some code } recount — JS-функция на странице. |
Часовой пояс GMT +3, время: 21:04. |