我正在尝试为Chrome创建一个右键单击上下文菜单。
我希望能够突出显示文本,右键单击,然后单击以使用由突出显示的文本确定的URL打开一个新选项卡。

我有一个清单(尽管我不确定我是否正确完成了背景部分):

  {
    "manifest_version": 2,
    "name": "ClickMenu",
    "version": "1.0",

    "description": "A right-click context menu",
    "icons": {
        "16": "icons/icon-16.png",
        "48": "icons/icon-48.png",
        "128": "icons/icon-128.png"
    },

    "permissions": [ "contextMenus" ],

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


还有一个contextMenu.js:

    function MenuContext(contextInfo, tab) {
    chrome.tabs.create({
    'url' : 'https://myurl.com/' + contextInfo.selectionText + '/launch'
    });
}

    var contextId = chrome.contextMenus.create({
        'title' : 'Launch this',
        'contexts' : [
          'selection'
        ],
        'onclick' : MenuContext
    });


没用我可以加载扩展程序,但是没有上下文菜单或功能。

可以看到我做错了吗?

最佳答案

您创建一个事件页面(在清单中定义"persistent": false的原因)。

在事件页面中,创建上下文菜单项时要进行三个更改。


传递一个字符串id参数。
使用chrome.contextMenus.onClicked回调而不是onclick参数。
chrome.runtime.onInstalled事件中创建它们。


有关更多信息-Event pages best practices

(顺便说一下-在事件页面中不要将数据保存在变量中)。

(我很抱歉我的英语...)

关于javascript - 右键单击Chrome的上下文菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41024969/

10-13 01:55