首页 > 解决方案 > Mozilla FF browser.tabs.create() 不起作用

问题描述

我自己的 Mozilla Firefox 扩展有问题。我想在文档上单击事件后打开一个新选项卡。我写了这个:

  (() => {
    document.addEventListener('click', () => {
      console.log('click');
      browser.tabs.create({});
    });
  })();

我的代码有什么问题?控制台打印“点击”,因此事件有效。同样在 manifest.json 我有这个权限(只有这个):

"permissions": [
    "tabs"
  ]

我将非常感谢您的回答:)

标签: javascriptfirefoxtabsfirefox-addonfirefox-addon-webextensions

解决方案


“browser.tabs” API 仅适用于后台脚本。您在内容脚本中使用它。WebExtensions 中的大多数 API 仅在后台脚本中工作。

来自 MDN:

用于 WebExtensions 的 JavaScript API 可以在扩展的后台脚本以及与扩展捆绑的任何其他文档中使用,包括浏览器操作或页面操作弹出窗口、侧边栏、选项页面或新标签页。扩展的内容脚本也可以访问其中一些 API(请参阅内容脚本指南中的列表)。

请阅读有关 WebExtensions 的更多信息:https ://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API

此问题的答案包含更多信息:TypeError: browser is undefined (Web Extension Messaging)


推荐阅读