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

时间:2018-10-04 08:56:02

标签: javascript microsoft-edge-extension

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

我的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

2 个答案:

答案 0 :(得分: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"
});

参考:

Edge: browserAction.setIcon not working when using a default icon with multiple sizes

您可以尝试进行测试,并告诉我们您的测试结果。

答案 1 :(得分:0)

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

但是,在Win10版本( 17763.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");
}

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