5

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

4

3 回答 3

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.");


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

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

    获取脚本的 ID

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

    切换到用户脚本范围

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

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

    脚本完成后访问脚本变量

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

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

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

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

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

    (点击查看大图)
    设置值

于 2013-10-11T02:04:16.473 回答
1

嗯,是的。只需输入 var 名称并按 Enter 即可评估(dir(xxx)用于对象)

注意: var 必须是全局设置unsafeWindow

于 2011-01-09T21:45:06.457 回答
0

对我有用的是我将变量设为全局变量。IE

var x = "Chairman Mao";  // x not accessible to chrome
    x = "Chairman Mao";  // X becomes accessible to chrome via inspector
于 2014-01-14T08:00:40.097 回答