javascript - 谷歌浏览器扩展,将选项卡添加到上下文菜单

标签 javascript google-chrome google-chrome-extension

如何将另一个选项添加到通过右键单击图标扩展出现的上下文菜单?

我试试这个:

function addMenu(title) {
    chrome.contextMenus.create({
        title: title,
        contexts: ["all"],
        onclick: function() { console.log(1)}
    });
}

addMenu('Log out');

我收到一个错误:

运行 contextMenus.create 时未检查 runtime.lastError:使用事件页面的扩展必须将 id 参数传递给 chrome.contextMenus.create

谁遇到过这样的问题?你能帮忙吗?

最佳答案

如错误消息所述,您使用的是 event page因此必须向 chrome.contextMenus.create 提供一个 id 才能在 onClicked listener 中使用它:

chrome.contextMenus.create({
    id: "some-command",
    title: "some title",
    contexts: ["all"]
});

chrome.contextMenus.onClicked.addListener(function(info, tab) {
    if (info.menuItemId == "some-command") {
        console.log("yay!");
    }
});

这是因为事件页面在几秒钟不活动后会被卸载,因此无法使用内联回调。而 onClicked 监听器由 Chrome 跟踪,以便在需要时自动加载事件页面。

关于javascript - 谷歌浏览器扩展,将选项卡添加到上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32718645/

相关文章:

javascript - 如何为 npm 脚本提供默认参数值?

javascript - 浏览器中的大图可视化

Javascript 对象属性 - 如果不存在则创建属性

javascript - Chrome 没有选择源 map ,尽管它已启用

java - 带有 GWT 插件的 Eclipse : unable to download for Chrome/Firefox

javascript - Chrome 扩展程序未在后退按钮上运行

javascript - Bootstrap 在崩溃时崩溃 "Hide"不工作

javascript - 如何将图像从background.js加载到background.html?

javascript - 复制到剪贴板而不附加文本区域

google-chrome - 单击链接后如何保持 Chrome 扩展窗口打开?