Существует веб-сайт, который я использую, написанный на каком-то могучем отличном javascript. Вряд ли какие-либо глобальные блоки, замыкания повсюду, и он использует строгий режим. Это делает его очень трудно внедрить мои собственные функции на сайт.Как заменить, удалить или перехватить событие jQuery из сценария Greasemonkey?
Веб-сайт клиента объекты инициализируются в jQuery.ready()
вызова:
$(window).ready(function() {
var a, b, c, d;
// Setup global data [...]
// Setup configuration [...]
a = GlobalFoo.ConstructorA();
b = GlobalFoo.ConstructorB(a);
// Really wish I could put stuff here
c = GlobalFoo.ConstructorC(a, b);
d = GlobalFoo.ConstructorD(b, c);
// etc.
});
Как можно, например, заменить b.someMethod()
с моим собственным кодом, прежде чем другие конструкторы называются?
Могу ли я остановить событие готовности или заменить его собственным кодом? Поскольку он довольно мал, я могу просто дублировать модифицированную версию в своем коде.
возможного дубликата [Изменения Javascript на HTML странице вне моего контроля] (HTTP: // StackOverflow. com/questions/10472569/change-javascript-on-html-page-out-of-my-control) –