当浏览器操作在地址栏中不可见时,Microsoft Edge 扩展不在上下文菜单中显示图标

Microsoft Edge Extension not showing icon in context menu when browser action not visible in address bar

我为 Microsoft Edge 创建了一个小扩展。它在某些元素上提供右键单击上下文菜单项。但是,我注意到如果地址栏中没有浏览器操作图标,则扩展图标不会显示在上下文菜单中。 ("show next to address bar" 选项)甚至没有显示默认图标,它只是完全空白。

我的manifest.json:

{
  "name": "",
  "author": "",
  "version": "1.0",
  "description": "",

  "browser_action": {
    "default_icon": {
      "20": "images/icon.svg",
      "40": "images/icon.svg"
    },
    "default_title": "",
    "default_popup": "popup.html"
  },

  "icons": {
    "16": "images/icon.svg",
    "32": "images/icon.svg",
    "64": "images/icon.svg",
    "128": "images/icon.svg"
  },

  "permissions": [
    "contextMenus",
    "storage"
  ],

  "background": {
    "scripts": ["js/background.js"],
    "persistent": true
  }
}

我的相关代码background.js:

browser.contextMenus.create({
    id: "",
    title: "Image",
    contexts: ["image"]
});

Windows 版本:1809,内部版本:17763.1 边缘版本:44.17763.1.0

尝试在 manifest.json 和每个 browserAction.setIcon 调用中设置明确的大小可能会帮助您解决问题。

示例:

Manifest.json

{
  "manifest_version": 2,
  "name": "test",
  "version": "0.0.1",
  "author": "demo_user",
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_icon": {
      "19": "icon.png",
      "38": "icon2.png"
    }
  }
}

在 JS 文件中

browser.browserAction.setIcon({
    path: {
      "19": "testimage.png",
      "38": "testimage.png"
});

参考:

您可以尝试在您这边做一个测试,然后告诉我们您的测试结果。

如果您让我们知道您的 Win10 和 Edge 版本,将会很有帮助。

但是,这个问题在 Win10 build (1776​​3.1) 上不存在。

这是我的 manifest.json:

    {
      "name": "test",
      "author": "",
      "version": "1.0",
      "description": "",
      "icons": {
        "16": "icons/icon.png",
        "32": "icons/icon.png",
        "64": "icons/icon.png",
        "128": "icons/icon.png"
      },

      "permissions": [
        "contextMenus",
        "storage"
      ],

      "background": {
        "scripts": ["background.js"],
        "persistent": true
      }

}

背景脚本:

browser.contextMenus.create({
  id: "log-selection",
  title: "Sample",
  contexts: ["selection"]
}, onCreated);

function onCreated() {
    console.log("Context Menu item was created");
}

让我们也知道您从后台脚本创建上下文菜单项的代码。