从Google Chrome Console访问Usercript变量
-
09-10-2019 - |
题
出于调试目的,是否可以从Google Chrome中的控制台访问Userscript变量?
解决方案
假设您有一个带有此代码的Chrome Usercript:
var userscriptVar = "I'm a global variable, userscript context.";
window.var2 = "I'm a window.scope variable, userscript context.";
console.log ("Hello from the userscript.");
访问这些Userscript变量:
确定用户标记的ID。您可以在扩展页面上看到它(
chrome://extensions/
):通过单击控制台底部的上下文菜单来切换到脚本的上下文:
请注意ID(
pfnbaeafniclcjhfkndoploalomdmgkc
)与扩展页面上列出的相同。现在,您将立即看到并更改窗口扫描的变量(
var2
),但是您看不到用户的global(userscriptVar
),因为脚本现实早已完成并消失了。 :要访问和更改脚本仍处于活动状态时,请在脚本中设置断点并使用调试器。看 这个答案 如何做。
在适当的断点处暂停的Userscript,您可以从控制台上看到但不会更改全局值。
但是您可以从调试器中更改值:
其他提示
嗯,是的。只需键入var名称并命中输入即可进行评估(使用 dir(xxx)
对于对象)
NB:VAR必须是 全球的出发 unsafeWindow
对我有用的是我制作了变量全球。 IE
var x = "Chairman Mao"; // x not accessible to chrome
x = "Chairman Mao"; // X becomes accessible to chrome via inspector
不隶属于 StackOverflow