我是 Thunderbird 插件开发的新手,我想向消息显示工具栏添加一个带有一些选项的新菜单
在我的manifest.json中,我已经使用以下配置配置了一个菜单,如Thunderbird WebExtension API文档中所述:
"message_display_action": {
"default_title": "__MSG_ctaMailSummarize__",
"theme_icons": [
{
"dark": "images/bot-icon-light-64.webp",
"light": "images/bot-icon-dark-64.webp",
"size": 64
},
{
"dark": "images/bot-icon-light-32.webp",
"light": "images/bot-icon-dark-32.webp",
"size": 32
},
{
"dark": "images/bot-icon-light-16.webp",
"light": "images/bot-icon-dark-16.webp",
"size": 16
}
],
"type": "menu"
},
此配置成功添加新菜单:
但是,我一直无法添加新选项;新菜单显示为空。
我还没有找到任何有用的文档,但我假设我需要使用 messageDisplay API,无论如何,我不清楚如何将我之前在manifest.json中的配置与API连接起来。
有什么建议吗?
要将项目添加到 Thunderbird 的菜单,您需要使用 menus API。
manifest.json
{
"manifest_version": 2,
"name": "SuperMenu",
"description": "No description",
"version": "0.1",
"message_display_action": {
"default_title": "SuperMenu",
"type": "menu"
},
"permissions": ["menus"],
"background": {
"scripts": ["background.js"]
}
}
背景.js
main();
async function main() {
const contexts = [browser.menus.ContextType.MESSAGE_DISPLAY_ACTION_MENU];
await browser.menus.create({ contexts, title: 'Foo' });
await browser.menus.create({ contexts, title: 'Bar' });
}
要处理单击事件,请向传递给 menus.create() 的对象添加 onclick 属性或使用 browser.menus.onClicked。 有关可用参数的更多信息,请参阅相应的文档。