我使用的一个网站是用一些非常好的 JavaScript 编写的。几乎没有任何全局变量,到处都是闭包,它使用严格模式。这使得将我自己的功能注入网站变得非常困难。
网站客户端对象在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()
在调用其他构造函数之前用我自己的代码替换?
我可以阻止准备好的事件发生或用我自己的代码替换它吗?由于它很小,我可以在我的代码中复制一个修改后的版本。