【发布时间】:2018-06-20 08:23:14
【问题描述】:
我正在尝试覆盖几个 javascript 函数。 javascript 由 chrome 中的 Requestly extension 加载。我觉得所有的代码都封装在一个函数里面,包裹在()中;
// start of the file
"use strict";
!function(Bt, Xt) {
"object" == typeof module && "object" == typeof module.exports ?
module.exports = Bt.document ? Xt(Bt, !0) : function(Gt) {
if (!Gt.document)
throw new Error("jQuery requires a window with a document");
return Xt(Gt)
}
: Xt(Bt)
}("undefined" == typeof window ? this : window, function(Bt, Xt) {
function Gt(Cr, Pr) {
var Ar = (Pr = Pr || kn).createElement("script");
Ar.text = Cr,
Pr.head.appendChild(Ar).parentNode.removeChild(Ar)
} // all the functions are defined below here
UI.writeLine = function(a, b, c, d=!0) {
//display a line of text in the browser window
}
let UI_writeLine = UI.writeLine;
UI.writeLine = function(x, y, z) {
Network.send() // 1. change - comment out this line
UI_writeLine.call(a, b, c, d, !1);
}
let writeText = new function() {
if (var1 == 1 || var2 == 2) // 2. change - modify this if-test
}
// end of file
}
);
我的意图是更改加载代码中的几行,可能只是通过 requestly 加载一个额外的 JavaScript 文件。我试图在一个正在加载的附加 JavaScript 文件中定义这两个有趣的函数,但似乎只有原始定义在使用。我认为 let 关键字将函数设为私有?
我当然可以复制 requestly 加载的原始代码,然后更改完整的代码。但如前所述,我只需要更改几行并考虑在附加文件或用户脚本中覆盖它。不过,用户脚本可能是一个复杂而混乱的选择。
虽然熟悉编程,但对javascript不是很熟悉。
【问题讨论】:
-
我只需要更改几行,哪些会改变答案(如果有的话)是否正确。
-
您需要向我们展示这些功能的确切位置和使用方式。这里的“私人”是什么意思?
-
我花了一些时间编辑并试图澄清我的原始帖子。脚本本身非常大,并且以不可读的变量名缩小。希望这次我包含了更多相关的部分。
标签: javascript google-chrome-extension userscripts