我知道我可以将 popup.html 与点击扩展按钮相关联。但是,我希望它是一个菜单,就像点击Chrome自己的“自定义和控制谷歌浏览器”按钮(位于扩展图标右侧)后弹出的菜单。我试图谷歌它,但似乎没有人在谈论这个。我是否遗漏了有关Chrome扩展程序开发的任何常识?
答案 0 :(得分:3)
你不能。
您可以通过chrome.browserAction.onClicked
注册点击,但不显示用户界面,也无需在弹出窗口中打开HTML页面。您可以将其设置为看起来像菜单,但它仍然不像本机下拉菜单。
请注意,您可以右键单击扩展按钮,但是您获得的菜单是固定的。很久以前我提交了一个feature request,但它从未起步。现在有一个contextMenus
上下文"browser_action"
可以实现此目的。
答案 1 :(得分:0)
一个实际的例子,因为文档实际上并不清楚:
manifest.js
{
"name": "Foo menu",
"description": "Demonstrating context menus on browser actions",
"manifest_version": 2,
"version": "1.0",
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"browser_action": {
"default_title": "Click me"
},
"icons": {
"16": "icon.png",
},
"permissions": ["contextMenus"]
}
background.js
chrome.contextMenus.removeAll();
chrome.contextMenus.create({
id: "FOO_ACTION",
title: "Foo",
contexts: ["browser_action"],
});
chrome.contextMenus.onClicked.addListener((info, tab) => {
if (info.menuItemId === "FOO_ACTION") {
// Execute foo using tab id
foo(tab.id);
}
});
const foo = (tabId) => { console.log(`Foo called on tab with id ${tabId}`) };