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

时间:2011-01-09 21:40:56

标签: javascript google-chrome console userscripts

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

3 个答案:

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


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

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

    Getting script's ID

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

    Switch to userscript scope

    请注意,ID(pfnbaeafniclcjhfkndoploalomdmgkc)与扩展程序页面上列出的内容相同。

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

    Accessing Script vars after script is done

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

    (Click for a larger image)
    Userscript paused at a breakpoint

  5. 当用户脚在适当的断点处暂停时,您可以从控制台看到但不能更改全局值。

    (Click for a larger image)
    Can't change from console

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

    (Click for a larger image)
    Setting the value

答案 1 :(得分:1)

嗯,是的。只需输入var名称并按Enter键进行评估(对象使用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