出于调试目的,是否可以从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变量:

  1. 确定用户标记的ID。您可以在扩展页面上看到它(chrome://extensions/):

    Getting script's ID

  2. 通过单击控制台底部的上下文菜单来切换到脚本的上下文:

    Switch to userscript scope

    请注意ID(pfnbaeafniclcjhfkndoploalomdmgkc)与扩展页面上列出的相同。

  3. 现在,您将立即看到并更改窗口扫描的变量(var2),但是您看不到用户的global(userscriptVar),因为脚本现实早已完成并消失了。 :

    Accessing Script vars after script is done

  4. 要访问和更改脚本仍处于活动状态时,请在脚本中设置断点并使用调试器。看 这个答案 如何做。

    (单击以获取更大的图像)
    Userscript paused at a breakpoint

  5. 在适当的断点处暂停的Userscript,您可以从控制台上看到但不会更改全局值。

    (单击以获取更大的图像)
    Can't change from console

  6. 但是您可以从调试器中更改值:

    (单击以获取更大的图像)
    Setting the value

其他提示

嗯,是的。只需键入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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top