Web扩展的子菜单

时间:2017-04-28 17:11:51

标签: javascript contextmenu firefox-webextensions

context menu in a web extension我们可以使用

browser.contextMenus.create({
  id: "clickme",
  title: "Click me!",
  contexts: ["all"]
});

不幸的是,我找不到一个子菜单的方法,是否有一个?

1 个答案:

答案 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");
    }
}