javascript – 我可以访问用户脚本中的匿名函数变量吗?
作者:互联网
我正在寻找用usercript修改javascript游戏.
问题是所有的游戏代码都包含了这样的匿名函数
(function () { "use strict";
var js = 'test';
})();
我可以使用我的用户脚本访问JS变量吗?
编辑:
另见:How to alter this javascript with Greasemonkey?
这个问题与Is it possible to gain access to the closure of a function?不一样!
解决方法:
是!
You can if you use the right browser (Firefox).
在用户脚本(在Firefox上),您可以重写页面的JS以给自己访问权限.另见,“How to alter this javascript with Greasemonkey?”.
你的函数调用就像(对于内联脚本):
checkForBadJavascripts ( [
[false, /js = 'test'/, replaceTargetJavascript]
] );
function replaceTargetJavascript (scriptNode) {
var scriptSrc = scriptNode.textContent;
scriptSrc = scriptSrc.replace (
/js = 'test';/,
"js = 'test'; window.myJS = js;"
);
addJS_Node (scriptSrc);
}
然后,您将访问变量,如:
console.log ("The var is: ", unsafeWindow.myJS);
唉,在Chrome用户脚本或Tampermonkey脚本中仍然没有好办法做这种事情.
如果有问题的JS的脚本是外部的,那么in Chrome, you can use beforeload
to block it.然后注入你自己的代码 – 修改为公开该私有变量.
标签:javascript,anonymous-function,userscripts 来源: https://codeday.me/bug/20190703/1367186.html