更改扩展 Top-most 上下文菜单标题

Change Extension Top-most Context Menu Title

目前,我的扩展程序的 top-most 上下文菜单使用 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 个菜单项并且不考虑自己的层次结构时才会发生此行为。

如果您声明自己的 "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,理想情况下,应该链接调用而不是简单地对它们进行排序,而是对同一调用进行一系列调用asynchronous API 在这种情况下似乎工作正常。如果在添加所有菜单后需要 运行 代码,请在最后 create.

的回调中执行