chrome.action未定义迁移到v3清单



我正在尝试将v2扩展到v3清单。

我的目标是点击扩展图标,选项页面就会打开。

现在我查看了迁移指南。

所以v2(正在工作(正在使用chrome.browserAction.onClicked.addListener。指南告诉我在v3 中使用chrome.action.onClicked.addListener

所以我做了一个清单:

{
"manifest_version": 3,
"version": "0.0.3",
"name": "Live_option_page",
"description": "build live option page with Vuetify 3",
"minimum_chrome_version": 93,
"icons": {
"16": "images/16x16.png"
},
"action": {
"default_icon": "images/16x16.png"
},
"background": {
"service_worker": "background/index.js"
},
"web_accessible_resources": [{
"resources": ["/options/*"],
"matches": ["<all_urls>"]
}],
"options_ui": {
"page": "options/index.html",
"open_in_tab": true
},
"permissions": [
"activeTab",
"tabs",
"browser_action"
]
}

现在我有了一个service_worker/background/index.js

const API = chrome || browser;
console.log(API.action) // => will print undefined
API.action.onClicked.addListener((tab) => {
console.log("clicked icon on tab ", tab);
API.tabs.create({url: "options/index.html"});
})

因此Service Worker崩溃,chrome.action未定义。

尝试设置将清单中的操作键更改为空对象:

{
...
"action": ""
}

您的代码的其余部分似乎很好。

最新更新