这是我的manifest.json文件的一部分:
"content_scripts": [ {
"js": [ "common.js", "generation.js" ],
"matches": [ "*://www.site.com/*" ],
"run_at": "document_start"
},
{
"js": [ "page_init.js" ],
"matches": [ "*://www.site.com/*" ],
"run_at": "document_start"
},
在这里,我想运行";common.js";在";js";,as common.js包含许多其他内容脚本所需的共享代码、全局变量和函数。我在清单中的page_init.js之前定义了common.js,在Chrome中,这样做会导致common.js在所有其他内容脚本之前运行,这正是我所需要的。然而,在Firefox中,它似乎并没有做到这一点。
然而,当我在Firefox中运行这个扩展时,page_init会抛出一个错误:
ReferenceError: ReferenceError: href is not defined
"href"是common.js.中定义的变量
我需要让page_init.js在document_end上运行才能让common.js完全运行吗?或者还有其他方法吗?我需要它们都在document_start上运行。
更新:
我设法通过将清单内容更改为以下内容来解决问题:
"content_scripts": [
{
"js": [ "common.js", "generation.js", "page_init.js" ],
"matches": [ "*://www.site.com/*" ],
"run_at": "document_start"
},
来自firefox文档:
js
一个路径数组,相对于manifest.json,引用JavaScript将被注入到匹配页面中的文件。
文件是按照给定的顺序注入的。这意味着例如,如果在此处包含jQuery,然后再包含另一个内容脚本,如这
这可能是一个firefox错误,您可能需要报告它。