Javascript 向上下文菜单链接添加子项

Javascript 向上下文菜单链接添加子项,javascript,google-chrome-extension,contextmenu,Javascript,Google Chrome Extension,Contextmenu,我正在尝试为我的上下文菜单添加子菜单,但由于某些原因,它对我不起作用。这是我的密码: var parent1 = chrome.contextMenus.create({"title": "Trigger Rank", "contexts":["link"]}); var child1 = chrome.contextMenus.create ( {"title": "Rank 1", "parentId": parent1, "onclick": genericOnClick} );

我正在尝试为我的上下文菜单添加子菜单,但由于某些原因,它对我不起作用。这是我的密码:

var parent1 = chrome.contextMenus.create({"title": "Trigger Rank", "contexts":["link"]});

var child1 = chrome.contextMenus.create
(
    {"title": "Rank 1", "parentId": parent1, "onclick": genericOnClick}
);
var child2 = chrome.contextMenus.create
(
    {"title": "Rank 2", "parentId": parent1, "onclick": genericOnClick}
);
var child2 = chrome.contextMenus.create
(
    {"title": "Rank 3", "parentId": parent1, "onclick": genericOnClick}
);



var parent2 = chrome.contextMenus.create({"title": "Target Rank", "contexts":["link"]});
var child1 = chrome.contextMenus.create
(
    {"title": "Rank 1", "parentId": parent2, "onclick": genericOnClick}
);
var child2 = chrome.contextMenus.create
(
    {"title": "Rank 2", "parentId": parent2, "onclick": genericOnClick}
);
var child3 = chrome.contextMenus.create
(
    {"title": "Rank 3", "parentId": parent2, "onclick": genericOnClick}
);
看起来很简单,但这是我的第一个chrome扩展,也是第一次用javascript编写。所以可能是我遗漏了什么

当前,右键单击链接时,仅显示父对象(而不显示子对象)


提前谢谢,如果我的问题太“新手”,我很抱歉:)

父项的
上下文设置为
[“link”]
,而子项的
上下文设置为
[“page”]
。因此:

  • 当你右键点击一个链接时,父母会出现,但孩子不会,因为他们没有设置在链接上出现
  • 当你右键单击某个链接之外的内容时,家长不会出现,因此孩子也不会出现

您必须设置孩子的
上下文
值以匹配父母的
[“link”]
值。

我刚刚遇到了一个类似但不完全相同的情况

我正在创建一个需要支持多个上下文(链接、页面、选择)的菜单,子菜单只显示在页面上

上面的答案是正确的,因为它是create的可选参数,所以必须定义上下文。尽管我仔细阅读了医生,但这是一个痛苦的发现:

上下文(可选的“全部”、“页面”、“帧”枚举数组), “选择”、“链接”、“可编辑”、“图像”、“视频”、“音频”或 “启动器”)此菜单项将出现的上下文列表。默认值 如果未指定,则发送至['page']。指定['all']相当于 除“启动器”之外的所有其他上下文的组合。这个 “launcher”上下文仅受应用程序支持,用于添加菜单 单击应用程序图标时显示的关联菜单项 在launcher/taskbar/dock/等中,不同的平台可能会放置 对启动器上下文菜单中实际支持的内容的限制

要明确回答,以下是您的代码和解决方案:

var child1 = chrome.contextMenus.create
(
    {"title": "Rank 1", "parentId": parent1, "onclick": genericOnClick, "contexts":["link"]}
);
var child2 = chrome.contextMenus.create
(
    {"title": "Rank 2", "parentId": parent1, "onclick": genericOnClick, "contexts":["link"]}
);
var child2 = chrome.contextMenus.create
(
    {"title": "Rank 3", "parentId": parent1, "onclick": genericOnClick, "contexts":["link"]}
);
在我自己的例子中,我支持多个上下文,所有上下文都需要在创建过程中考虑(例如“上下文”:[“页面”、“链接”、“选择”])