我正在使用以下脚本通过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"
    ]
}

最佳答案

感谢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

关于javascript - Chrome扩展程序将onClicked操作添加到子上下文菜单项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51796448/

10-09 17:25
查看更多