无法访问WebExtension API

时间:2018-01-02 04:56:38

标签: firefox-webextensions

我有以下manifest.json

{
   "manifest_version": 2,
   "name": "Application Name",
   "version": "1.0",

   "description": "blah blah blah",

   "icons": {
      "48": "icons/icon-48.png",
      "96": "icons/icon-96.png"
   },

   "permissions": [
      "activeTab",
      "tabs",
      "history",
      "storage"
   ],

   "browser_action": {
      "default_icon": "icons/icon-32.png",
      "default_title": "Title",
      "default_popup": "popup/popup.html"
   },

   "content_scripts": [{
      "matches": [
         "<all_urls>"
      ],
      "js": [
         "content_scripts/script1.js",
         "content_scripts/script2.js"
      ]
   }]
}

我可以在我的内容脚本中访问storage API(已定义browser.storage),但历史记录和标签API(browser.tabsbrowser.history)都是undefined。我是否遗漏了清单中的某些内容以获取这些权限?

1 个答案:

答案 0 :(得分:1)

可用于内容脚本的少数WebExtensions API之一是browser.storage。大多数WebExtensions API只能在使用后台脚本时访问。使用消息传递,您仍然可以调用这些API(您所做的基本上是在内容脚本中调用后台脚本中的函数)。请参阅此页面上的示例:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/sendMessage

有关类似问题,另请参阅Firefox WebExtention API: TypeError: browser.browserAction is undefined