1

我正在使用插件 sdk/tabs api 在加载时将内容脚本注入选项卡,如下所示:

tabs.on(ready, function (tab) {
  var worker = tab.attach({
    contentScriptWhen: 'end',
    contentScriptFile: myAwesomeArrayOfScripts
  });

  ...

有没有一种简单的方法可以防止附加域模式?最重要的是,我需要阻止它在 about: 域上工作,例如 Firefox 的新标签页。

显然我可以用这样的代码控制执行:

if (tab.url.indexOf('about:') === 0) return;

但与 chrome 声明性清单相比,它看起来非常不清楚的解决方案,您可以在其中拥有:

"content_scripts": [
  {
    "matches": [ "http://*/*", "https://*/*", "file://*/*" ],

有没有类似的?Firefox 文档令人困惑......过去的东西太多,版本和文章太多。

4

1 回答 1

5

如果要声明内容脚本,请使用sdk/page-mod模块而不是通过选项卡事件附加内容脚本。然后您可以使用includeexclude键来指定 URL 模式(exclude在 Firefox 32 中引入)。

使用 Firefoxtab.attach类似于chrome.tabs.executeScript,它应该只用于强制执行内容脚本。

于 2014-09-26T13:17:15.447 回答