【发布时间】:2019-07-24 06:32:41
【问题描述】:
我想制作一个简单的浏览器扩展程序,例如 Font Face Ninja,它会在单击 page_action 或 browser_action 时切换 UI。
使用browser_action 的以下代码有效 -
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
console.log(`clicked browserAction`)
})
manifest.json
{
...
"browser_action": {
"default_icon": {
"19": "icon19.png",
"38": "icon38.png"
}
},
...
}
虽然使用page_action 的以下代码不起作用 -
background.js
chrome.pageAction.onClicked.addListener(function(tab) {
console.log(`clicked pageAction`)
})
manifest.json
{
...
"page_action": {
"default_icon": {
"19": "icon19.png",
"38": "icon38.png"
}
},
...
}
根据MDN docs,
页面操作类似于浏览器操作,不同之处在于它们与特定网页相关联,而不是与整个浏览器相关联。如果某个操作仅与某些页面相关,那么您应该使用页面操作并仅在相关页面上显示它。如果某个操作与所有页面或浏览器本身相关,请使用浏览器操作。
这确认我想使用page_action,但它不起作用。
如何使用 page_action 使其工作?
【问题讨论】:
-
page_action 默认情况下是禁用的,您需要使用 show() 方法在适当的选项卡上单独启用它,请参阅包含演示扩展链接的 documentation。你也可以使用declarativeContent API。
-
我尝试使用演示链接使其工作,但它给出了奇怪的错误,所以我退出了它。如果需要,我会再次回到这里。目前,
browser_action正在工作,所以现在很好???? -
好吧,所以
page_action也可以使用declarativeContent→ github.com/deadcoder0904/insert-remove-ui-chrome-extension/tree/… -
@wOxxOm page_action 上的文档确实令人困惑;并且没有提及
needing to enable it explicitly。 ATST,你的 cmets 总是有帮助的 :thumbsup:
标签: javascript google-chrome-extension firefox-addon browser-extension