Chrome扩展程序将onClicked操作添加到子上下文菜单项

时间:2018-08-11 04:23:48

标签: javascript google-chrome-extension

我正在使用以下脚本通过Chrome扩展程序添加具有两个子菜单的上下文菜单。

chrome.contextMenus.create({
    id: "context1",
    title: "Do it!",
    contexts: ["all"]
});

chrome.contextMenus.create({
    id: "context2",
    title: "Do it too!",
    contexts: ["all"]
});

chrome.contextMenus.onClicked.addListener(function(info, tab) {
    if (tab) {
        var code = 'doit();';
        chrome.tabs.executeScript(tab.id, { code: code });
    }
});

我想知道如何使用chrome.contextMenus.onClicked.addListener使它们每个执行不同的脚本吗?

这是我的清单文件。

{
    "manifest_version": 2,
    "name":    "My Extension",
    "version": "0.1",
      "content_scripts": [ {
            "js": [ "jquery-3.3.1.min.js", "content.js"],
            "css": ["bootstrap.min.css"],
            "matches": [ "<Call_urls>" ]
         } ],
    "background": {
        "persistent": false,
        "scripts": ["ctx.js"] //<- The file for script above.
    },

    "permissions": [
        "contextMenus",
        "activeTab"
    ]
}

1 个答案:

答案 0 :(得分:1)

多亏了wOxxOm,我知道了。

chrome.contextMenus.create({
    id: "context1",
    title: "First",
    contexts: ["all"]
});

chrome.contextMenus.create({
    id: "context2",
    title: "Second",
    contexts: ["all"]
});

chrome.contextMenus.onClicked.addListener(function(info, tab) {
    if (tab) {
        if (info.menuItemId === "context1"){
            var code = 'alert("First Clicked");';
            chrome.tabs.executeScript(tab.id, { code: code });
        }
        if (info.menuItemId === "context2"){
            var code = 'alert("Second Clicked");';
            chrome.tabs.executeScript(tab.id, { code: code });
        }
    }
});

通过使用以上脚本。您将获得每个选定项目的单独警报。示例:如果您选择了Second Clicked选项,则会收到Second警报。