更改扩展名最顶层的上下文菜单标题

时间:2016-11-23 19:53:27

标签: javascript google-chrome google-chrome-extension contextmenu

目前,我的扩展程序的最顶层上下文菜单使用manifest.json name作为标题。 name相当长,并创建一个大的上下文菜单以适应它。是否可以更改上下文菜单使用的标题?我希望它使用manifest.json short_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

1 个答案:

答案 0 :(得分:1)

只有当您拥有多个菜单项并且不处理自己的层次结构时,才会发生此行为。

如果您声明自己的" root"项目,以及所有其他项目明确在其中,这不会发生。

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的回调中执行此操作。