要context menu in a web extension我们可以使用
browser.contextMenus.create({
id: "clickme",
title: "Click me!",
contexts: ["all"]
});
不幸的是,我找不到一个子菜单的方法,是否有一个?
答案 0 :(得分:3)
使用菜单使用参数
连接子菜单parentId的
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenus/create#Parameters
在示例中,您可以看到与parentId: MENU_ENTRY.DIALOG_OPTIONS
连接到父菜单的子菜单id: MENU_ENTRY.DIALOG_OPTIONS
。
主菜单没有parentId
const MENU_ENTRY = {
DIALOG_OPTIONS: 'DIALOG_OPTIONS',
DIALOG_OPTIONS_DEFAULT: 'DO_DEFAULT',
DIALOG_OPTIONS_DETACH: 'DO_DETACH',
}
browser.contextMenus.create({
id: MENU_ENTRY.DIALOG_OPTIONS,
title: browser.i18n.getMessage("contextMenuItemDialogOptions"),
contexts: ["all"]
}, onCreated);
browser.contextMenus.create({
id: MENU_ENTRY.DIALOG_OPTIONS_DETACH,
parentId: MENU_ENTRY.DIALOG_OPTIONS,
type: "radio",
title: browser.i18n.getMessage("contextMenuItemDialogOptionsDetach"),
contexts: ["all"],
checked: true
}, onCreated);
browser.contextMenus.create({
id: MENU_ENTRY.DIALOG_OPTIONS_DEFAULT,
parentId: MENU_ENTRY.DIALOG_OPTIONS,
type: "radio",
title: browser.i18n.getMessage("contextMenuItemDialogOptionsDefault"),
contexts: ["all"],
checked: false
}, onCreated);
function onCreated(n) {
if (browser.runtime.lastError) {
console.log(`Error: ${browser.runtime.lastError}`);
} else {
console.log("Menu Item created successfully");
}
}