活动选项卡的源代码 - 获取变量值

时间:2012-09-13 12:31:31

标签: javascript google-chrome-extension

我已经编写了一个Hello World示例扩展。现在我正在尝试编写Chrome扩展程序以获取某个JavaScript变量的值(如果已声明。

所以让我们说有一个

var test = 'a';

在源代码中。我希望得到a值。

更新:可以访问“原始”网站的代码,但我知道这个变量总是存在,并且具有一定的值,总是不同的

警报可以。 (我可以从分机的页面提醒吗?)

我看到有“许可”和“标签”之类的东西,我不确定我会丢失什么。

我尝试搜索,找到类似的内容,但this示例在我点击链接时没有做任何事情。

2 个答案:

答案 0 :(得分:1)

从内容脚本中,您无法访问页面上声明的变量。

取自documentation

  

内容脚本在称为孤立世界的特殊环境中执行。他们可以访问注入页面的DOM,但不能访问页面创建的任何JavaScript变量或函数。

我看到的唯一方法是通过后台页面中的XHR加载脚本源并解析它。然后,如果要将结果发送到内容脚本,则可以使用message passing。请注意,如果后续脚本更改了变量的值,则此解决方案将不起作用。

答案 1 :(得分:0)

如果您可以控制该页面,则可以将该值放入页面上隐藏的HTML元素中,然后您可以使用内容脚本提取扩展程序。

在网站上:

var test a = 'a';
document.documentElement.dataset["a"] = a;

在扩展程序的内容脚本中:

var a = document.documentElement.dataset["a"];

确保在页面上的脚本之后执行内容脚本(例如,在清单中添加"run_at": "document_end"