更改扩展名顶级上下文菜单标题

问题描述:

当前,我的扩展程序的最上面的上下文菜单使用manifest.jsonname作为标题。 name相当长,并创建一个大的上下文菜单来适应它。是否可以更改上下文菜单使用的标题?我宁愿使用manifest.jsonshort_name更改扩展名顶级上下文菜单标题

我在the docs中没有找到任何提到这样做的内容。

实施例:

的manifest.json
{ 
    "name": "My extension - And a blurb", 
    "short_name": "My extension" 
    ... 
    "permissions": [ 
     "contextMenus" 
    ], 
    "icons": { 
     "16": "icon-bitty.png", 
     "48": "icon-small.png", 
     "128": "icon-large.png" 
    }, 
    ... 
    } 

background.js
chrome.contextMenus.create({"title": "Test item"}); 

结果,看起来上下文菜单等:

My extension - And a blurb 
| 
--- Test item 

我希望它是:

My extension 
| 
--- Test item 
+0

请编辑问题为主题:包括一个**完整的** [mcve],重复的问题。包括一个* manifest.json *,一些背景*和*内容脚本。寻求调试帮助的问题(“**为什么不是这个代码工作?”)必须包括:►期望的行为,►特定问题或错误*和*►在问题中重现问题所需的最短代码**本身**。没有明确问题陈述的问题对其他读者无益。请参阅:“**如何创建[mcve] **”,[我可以在此处询问哪些主题?](http://stackoverflow.com/help/on-topic)和[问]。 – Makyen

+0

基本上,如果我们要调查这一点,并且正确地理解*你正在谈论的内容,那么[mcve]会让它变得更容易。此外,一个小屏幕截图显示*正是*你在说什么会有所帮助。我可以*猜测*你在说什么,我相信我知道,但我不知道*我理解你正在谈论哪个上下文菜单是正确的。 – Makyen

+0

增加了一个例子 – kspearrin

这种行为只发生,如果你有超过1菜单项,不要拿自己的层次结构的照顾。

如果您声明自己的“根”项目,并且所有其他项目都明确地在其中,则不会发生这种情况。

chrome.contextMenus.removeAll(); 
chrome.contextMenus.create({title: "How fancy", id: "root"}); 
chrome.contextMenus.create({title: "Indeed", id: "sub1", parentId: "root"}); 
chrome.contextMenus.create({title: "Indubitably", id: "sub2", parentId: "root"}); 

将导致

[your 16x16 icon] How fancy 
| 
+- Indeed 
| 
+- Indubitably 

在一般情况下,要确保你的ID分配给您的上下文菜单。它对于很多目的很有用。

注意:从技术上讲,contextMenus是一个异步API,理想情况下,应该链接调用,而不是简单地排序它们,但对同一个异步API的调用序列在这种情况下似乎工作正常。如果您需要在添加所有菜单后运行代码,请在最后一个回调create中执行。