我有以下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.tabs
和browser.history
)都是undefined
。我是否遗漏了清单中的某些内容以获取这些权限?
答案 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。