Chrome扩展程序:上下文菜单图标未显示

时间:2017-09-16 10:33:46

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

我正在构建Chrome扩展程序,并设置了一个上下文菜单,该菜单将显示并检查用户从扩展程序弹出窗口中的表中选择的项目(图像或文本)。

这是我在 popup.js ' window.onload中创建上下文菜单的代码:

chrome.contextMenus.removeAll();
chrome.contextMenus.create( {title: "Toggle Selected",
  documentUrlPatterns: [ "chrome-extension://*/popup.html"],
  contexts:["selection"], onclick: toggleselected} );

这是在上下文菜单onclick上调用的函数 - 也在 popup.js (简化版)中:

function toggleselected(info, tab)
    {
    var selection = window.getSelection(),
            q0 = document.querySelectorAll("[id^='id0']"),
            q1 = document.querySelectorAll("[id^='id1']");
    for (var i = 0; i < somearray.length; i++)
        {
        if (selection.containsNode(q1[i], true))
            {
            somearray[i].checked = !somearray[i].checked;
            q0[i].checked = !q0[i].checked;
            }
        }
    updatesomearrayinfo();
    }

这是我的 manifest.json 文件(再次,简化版):

{
"manifest_version": 2,
"name": "Extension Name",
"version": "1.0",
"description": "Random description",
"browser_action":
    {
    "default_icon":
        {
        "16": "icon16.png",
        "32": "icon32.png",
        "48": "icon48.png",
        "128": "icon128.png"
        },
    "default_popup": "popup.html"
    },
"background":
    {
    "scripts": ["somescript.js"],
    "persistent": true
    },
"permissions": ["contextMenus", "tabs", "downloads", "<all_urls>"]
}

一切正常,上下文菜单会在需要时正确显示...除了它旁边没有扩展程序的自己的图标,但默认的Chrome扩展程序图标(灰色的) 。可以采取哪些措施来纠正这种行为?我的清单中的图标是可以的,其中一个(我相信16x16像素)正确地显示在我的扩展按钮上,除了通常使用chrome.runtime.onInstalled contextMenus.onClicked.addListener来自事件页面的整个上下文菜单之外的其他图标{1}}和其他听众(我不愿意使用,因为我特别需要处理来自 popup.js 的变量 - 例如某些阵列和弹出元素的查询),I似乎没有做任何不同于其他扩展或StackOverflow上的答案中的代码示例所做的事情。而且他们都显示了自己的扩展图标,显然没有做任何特别的事情。

编辑:此外,有没有人知道为什么只有当选择包含 more 而不是一个特定项目(在我的情况下是图像)时才会触发选择的上下文菜单?

0 个答案:

没有答案