在Google Chrome扩展程序中添加子contextMenus

问题描述 投票:1回答:2

我目前可以在Google Chrome扩展程序中创建一个contextMenu(右键菜单),如下所示:

chrome.contextMenus.create({
  title: "The name to click",
  contexts:["selection"],
  onclick: theFunctionToRun
});

但是,我希望能够添加子菜单的contextMenu。我正在实现10个可以通过右键单击菜单调用的工具,但是希望有2个菜单,每个菜单中有5个工具,基于它们的分类。

我无法在线或在有关此文档的文档中找到任何信息。我很惊讶其他人也不想要这个功能,所以也许我只是在寻找错误的东西。

是否可以创建子菜单的contextMenu?如果是这样,我该怎么做?

google-chrome
2个回答
3
投票

我想到了。我需要在父菜单中指定一个id,然后在其他菜单中引用父ID,如下所示:

chrome.contextMenus.create({
  title: "The name of the parent menu",
  id: "parent",
  contexts:["selection"]
});

chrome.contextMenus.create({
  title: "The first action to click",
  parentId: "parent",
  contexts:["selection"],
  onclick: theFirstFunction
});

chrome.contextMenus.create({
  title: "The second action to click",
  parentId: "parent",
  contexts:["selection"],
  onclick: theSecondFunction
});

0
投票

它可能有点简单。首先,我将拥有并说这不是我的原始代码,但子菜单位是。我基于它的代码来自:https://www.youtube.com/watch?v=DH7QVll30XQ和他的Github repo https://github.com/gopinav/Chrome-Extensions。这里'我如何更改事件页面只是添加了另一个上下文菜单项。父菜单标题是Manifest上的名称,我只是为了确定而改变了。我希望这对某些人有用。

    var priceItem = {
    "id": "saveAsPrice",
    "title": "Save as Price",
    "contexts": ["selection"]
};

var nameItem = {
    "id": "saveAsName",
    "title": "Save as Name",
    "contexts": ["selection"]
};


chrome.contextMenus.create(priceItem);
chrome.contextMenus.create(nameItem);

Chrome Extension Context submenu

© www.soinside.com 2019 - 2024. All rights reserved.