【发布时间】:2015-07-11 16:50:30
【问题描述】:
我正在尝试将 JS 代码注入一个网站,该代码在其所有页面上执行。我发现这可以使用 chrome 内容脚本来完成。因此,我做了以下事情:
-
我已经创建了“contentscript.js”。
var x = [] s.src = 'AN EXTERNAL JS FILE'; (document.getElementsByTagName('head')[0] || document.body).appendChild(s); -
我已经创建了“manifest.json”。
{ "name": "Sample", "version": "1.0", "manifest_version": 2, "permissions": [ "tabs", "*://*/*" ], "icons": { "128":"logo.png" }, "content_scripts": [{ "js": ["contentscript.js"], "matches": ["<all_urls>"] }] } 两个文件都存在于同一个文件夹中。
我已将它们加载到 chrome 扩展中。
脚本按预期执行。
我正在注入的脚本将一个外部 JS 文件加载到页面中,并在 head 标记下放置一个脚本元素。这个 JS 还使用了我在注入的 JS 脚本中定义的x 变量。但是它无法读取它的问题。在控制台中,它会抛出x 变量未定义的错误。
我如何定义变量以使其可供外部 JS 文件访问,并提及我既无权访问网站也无权访问外部 JS 文件?
谢谢,
【问题讨论】:
-
请显示外部 JavaScript 文件
-
我的猜测是 x 没有被全局定义。
-
@KevinB 是否可以通过 contentscripts.js 定义一个全局变量?
-
我不知道,我从未使用过它们。只是根据症状进行诊断。
标签: javascript google-chrome-extension