Google chrome extension 扩展加载内容脚本会在发布到chrome web应用商店时触发警告

Google chrome extension 扩展加载内容脚本会在发布到chrome web应用商店时触发警告,google-chrome-extension,Google Chrome Extension,我想把我的Chrome扩展的脚本分成几个文件。为此,据我所知,我需要向清单文件添加一个“content_scripts”属性。当我发布到Chrome网络商店时,我收到一条警告消息,我的扩展需要广泛的权限,审查扩展需要更多的时间,我最好以不同的方式进行 最初,我只有一个js文件,包括数据和函数。我不喜欢这样,所以我想为数据和函数提供单独的js文件。因此,我将数据带到一个新的data.js文件中,我发现使其工作的唯一方法是在清单文件中有一个“content_script”属性 "content_sc

我想把我的Chrome扩展的脚本分成几个文件。为此,据我所知,我需要向清单文件添加一个“content_scripts”属性。当我发布到Chrome网络商店时,我收到一条警告消息,我的扩展需要广泛的权限,审查扩展需要更多的时间,我最好以不同的方式进行

最初,我只有一个js文件,包括数据和函数。我不喜欢这样,所以我想为数据和函数提供单独的js文件。因此,我将数据带到一个新的data.js文件中,我发现使其工作的唯一方法是在清单文件中有一个“content_script”属性

"content_scripts": [
    {
        "matches": ["<all_urls>"],
        "js": ["data.js"]
    }
],
“内容脚本”:[
{
“匹配项”:[“”],
“js”:[“data.js”]
}
],

“matches”属性似乎是必需的。我的理解是,这个值导致Chrome商店警告我这是一个太多的权限。他们建议我使用“权限”:[“活动选项卡”]。但我的舱单上已经有了。所以我有点困惑,我怎么可以不需要额外的权限就添加一个内容脚本,因为它只是另一个嵌入式js文件,我不明白为什么它需要比原始背景javascript文件更多的权限。

最后,我通过从后台脚本中引用几个单独的js文件来管理它们:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(tab.id, {file:"script1.js"});
  chrome.tabs.executeScript(tab.id, {file:"script2.js"});
});

它工作正常,不会导致Chrome网络商店提示权限警告。所以,这似乎是一种更好的方式来实现我的目标。

需要一个内容脚本来访问/修改网页的DOM。如果不需要,不要使用内容脚本。另外,
意味着内容脚本的一个实例在每个网页上运行,因此只有在您确实需要它的时候,才应该使用它。根据扩展的具体功能,可能有不同的实现方式。文件本身的分离在这里是不相关的,因为扩展由严格定义的部分组成,每个部分的设计都是为了实现该部分文档中描述的特定目标。谢谢@wOxxOm。访问和修改网页的DOM是我的扩展所做的。它仅在用户单击扩展图标时按需执行此操作。实际上,我只需要一个背景脚本就可以实现这一点。对我来说,分离脚本更多的是出于实际目的,所以我知道我使用内容脚本的方向是错误的。我想我已经找到了解决问题的方法,所以我将在这里发布。如果使用chrome.tabs.executeScript注入内容脚本,则无需在manifest.json中声明内容脚本。