当加载内容脚本时,我使用插件sdk/tabs api将内容脚本注入到选项卡中,如下所示:
tabs.on(ready, function (tab) {
var worker = tab.attach({
contentScriptWhen: 'end',
contentScriptFile: myAwesomeArrayOfScripts
});
...
有没有一种简单的方法可以防止域模式上的附加?最重要的是,我需要防止它在about:domains上工作,比如firefox的新选项卡页面。
很明显,我可以用这样的代码来控制执行:
if (tab.url.indexOf('about:') === 0) return;
但与chrome声明性清单相比,它看起来非常不清楚的解决方案,在chrome声明式清单中可以有以下内容:
"content_scripts": [
{
"matches": [ "http://*/*", "https://*/*", "file://*/*" ],
有类似的吗?Firefox文档令人困惑。。。太多的东西,太多的过去的版本和文章。
如果要声明内容脚本,请使用sdk/page-mod
模块,而不是通过选项卡事件附加内容脚本。然后,您可以使用include
和exclude
键来指定URL模式(exclude
是在Firefox32中引入的)。
使用Firefox的tab.attach
类似于chrome.tabs.executeScript
,后者只能用于强制执行内容脚本。