【发布时间】:2019-11-06 10:26:40
【问题描述】:
我想将我的 Chrome 扩展程序的脚本拆分成几个文件。为此,据我了解,我需要在清单文件中添加一个“content_scripts”属性。当我发布到 Chrome 网上应用店时,我收到一条警告消息,提示我的扩展程序需要大量权限,并且审查扩展程序需要更多时间,我最好采取不同的方式。
最初,我只有一个包含数据和函数的 js 文件。我不喜欢这样,所以我想为数据和函数提供单独的 js 文件。所以我把数据放到一个新的 data.js 文件中,我发现让它工作的唯一方法是在清单文件中有一个“content_script”属性。
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["data.js"]
}
],
“matches”属性似乎是必需的。我的理解是,这个
【问题讨论】:
-
需要一个内容脚本来访问/修改网页的 DOM。如果您不需要,请不要使用内容脚本。
<all_urls>也意味着你的内容脚本的一个实例在每个网页上运行,所以你应该只在你真的需要它时才使用它。根据您的扩展究竟做什么,可能会有不同的实现方式。文件本身的分离在这里是不相关的,因为扩展由严格定义的部分组成,每个部分都旨在服务于特定目标,如该部分的文档中所述。 -
谢谢@wOxxOm。访问和修改网页的 DOM 是我的扩展程序所做的。它仅在用户单击扩展图标时按需执行。实际上,我只需一个后台脚本就可以实现它。分离脚本对我来说更多是出于实际目的,所以我知道我在 content_scripts 上走错了方向。我想我已经找到了解决问题的方法,所以我会在这里发布。
-
如果使用 chrome.tabs.executeScript 注入,则无需在 manifest.json 中声明内容脚本。