从Google Chrome控制台访问用户脚本变量

Kug*_*gel 5 javascript console google-chrome userscripts

出于调试目的,是否可以从Google Chrome中的控制台访问用户脚本变量?

Bro*_*ams 3

假设您有一个包含以下代码的 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.");
Run Code Online (Sandbox Code Playgroud)


要访问这些用户脚本变量:

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

    获取脚本的ID

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

    切换到用户脚本范围

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

  3. 现在您将立即能够查看和更改窗口范围的变量 ( var2),但您看不到用户脚本的全局变量 ( userscriptVar),因为脚本实例早已完成并消失。:

    脚本完成后访问脚本变量

  4. 要在脚本仍处于活动状态时访问和更改用户脚本变量,请在脚本中设置断点并使用调试器。请参阅此答案以了解如何执行此操作。

    (点击查看大图)
    用户脚本在断点处暂停

  5. 将用户脚本暂停在合适的断点处后,您可以从控制台查看但不能更改全局值。

    (点击查看大图)
    无法从控制台更改

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

    (点击查看大图)
    设置值