出于调试目的,是否可以从Google Chrome中的控制台访问用户脚本变量?
答案 0 :(得分:2)
假设您有一个包含此代码的Chrome用户脚本:
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.");
要访问这些用户脚本变量:
确定用户脚本的ID。您可以在扩展程序页面(chrome://extensions/
)上看到它:
通过单击控制台底部的上下文菜单切换到脚本的上下文:
请注意,ID(pfnbaeafniclcjhfkndoploalomdmgkc
)与扩展程序页面上列出的内容相同。
现在您将能够立即查看和更改窗口范围的变量(var2
),但是您无法看到用户脚本的全局变量(userscriptVar
),因为脚本实例早就结束了,消失了。 :
要访问和更改用户脚本变量,在脚本仍处于活动状态时,请在脚本中设置断点并使用调试器。有关如何执行此操作,请参阅this answer。
当用户脚在适当的断点处暂停时,您可以从控制台看到但不能更改全局值。
但您可以从调试器更改值:
答案 1 :(得分:1)
dir(xxx)
)
注意:var必须在unsafeWindow
答案 2 :(得分:0)
对我有用的是我将变量设为全局变量。即
var x = "Chairman Mao"; // x not accessible to chrome
x = "Chairman Mao"; // X becomes accessible to chrome via inspector