我正在尝试编写 Greasemonkey 脚本或 Userscript 来修复网站中的错误,该错误处理对象的错误功能。我可以手动解决问题,方法是在生成函数原型的代码行添加断点,并使用 js 控制台手动覆盖函数原型。但是,我认为没有任何方法可以使用代码来做到这一点。外部脚本在 html 正文的末尾加载,但问题代码在同一脚本中执行。
有没有办法以某种方式将 javascript 代码注入页面,以便在创建此 Ft.prototype.J 时,我可以立即对其进行修改?问题是代码也被混淆和缩小了,所以我不确定它的一半是做什么的。
以下是代码的基本概要:
//What does this do?????
function A(a, b) {
function c() {}
c.prototype = b.prototype;
a.f = b.prototype;
a.prototype = new c;
a.prototype.constructor = a
}
function Ft(a, b) {
$.call(this, b);
//some stuff
}
//doing something with jQuery?
A(Ft, $);
Ft.prototype.J = function (a) {
//modifies the DOM content
};
//Code soon after that calls some object.J
如果我将代码行添加Ft.prototype.J = function() {} //my own function
到我的greasemonkey脚本中,它会按预期返回错误Ft not defined
。但是,如果我在加载结束时执行该行,则损坏的函数已经运行,并且 DOM 已经被感染。
谢谢。