无法在扩展程序的js中引用网站的全局js变量

时间:2015-12-06 12:54:07

标签: google-chrome-extension

在我的chrome的清单文件中,我有一个content_scripts声明来调用某个站点上的js文件,例如:

  "content_scripts": [
{
  "matches": ["https://example.com/*"],
  "js": ["jquery-1.11.3.js", "myjs.js"]
}

我正在测试此扩展程序的匹配网站包含一个javascript文件,该文件声明了一个全局变量var' Foo'。我想在我的扩展程序自己的myjs.js文件中访问此变量。但是,当我尝试引用变量时,我在控制台中收到错误:

Uncaught ReferenceError: Foo is not defined 

我尝试在使用变量之前添加2秒的setTimeout,但它仍会产生相同的错误。如果我打开Chrome的开发人员工具(F12)控制台并只输入变量名称' Foo',它实际上会返回变量而不会出现问题。

如何让Chrome扩展程序的js文件访问该网站的全局js变量?

1 个答案:

答案 0 :(得分:0)

您无法使用内容脚本访问网页定义的变量。只需按照内容脚本文档here进行操作即可。内容脚本在自己独立的环境中运行,您甚至无法使用内容脚本中的扩展程序的变量和函数。从内容脚本与扩展进行通信的方式是通过消息传递。请仔细阅读文档。我希望这会有所帮助。