javascript - 更改扩展最上面的上下文菜单标题

标签 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"
    },
    ...
  }

背景.js

chrome.contextMenus.create({"title": "Test item"});
<小时/>

上下文菜单的结果如下所示:

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

我希望它是:

My extension
|
--- Test item

最佳答案

只有当您有超过 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 的回调中执行此操作。

关于javascript - 更改扩展最上面的上下文菜单标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40773068/

相关文章:

javascript - Chrome 扩展 api 将参数添加到当前 url

javascript - Chrome 扩展 CORB : How to react to updates in the shared DOM

javascript - 对 Flickr API 的 AJAX 请求返回 0 结果,但适用于curl/postman

Javascript Ajax 优雅降级,具有不同的页面?

Javascript 按钮 onclick 在第一次单击时不起作用

angular - Web OTP API Typescript Typings 问题 - TypeScript 中缺少类型

javascript - 我们如何在 RethinkDb 中的过滤器之后使用 getNearest 函数?

javascript - 浏览器安全的方式来打开一个大小适合内容(而不是选项卡)的新窗口并打开操作系统的打印对话框?

python - WebDriver异常: Message: unknown error: cannot get automation extension from unknown error using Selenium ChromeDriver and Chrome through Python

javascript - 如何禁用 Chrome 扩展中包含的脚本?