在browserAction onclick上创建上下文菜单

时间:2012-10-15 08:44:20

标签: google-chrome google-chrome-extension contextmenu

现在几个小时以来我一直困扰着这个问题,每次用户点击Google Chrome扩展程序时,是否有人知道如何显示上下文菜单。 我设法用我的default_popup显示菜单,但我发现我应该在上下文菜单上实现它。

这是图像:

我有以下代码

的manifest.json

{
    "name": "Hello Toolbar",
    "version": "1.0",
    "manifest_version": 2,
    "description": "A Toolbar that helps.",
    "browser_action": {
        "default_icon": "icon.png"
    },
    "background": {
        "scripts": ["background.js"]
    },
    "permissions": [
        "cookies",
        "http://*/*",
        "tabs",
        "contextMenus"
    ]
}

background.js

chrome.browserAction.onClicked.addListener( function(tab){
    chrome.contextMenus.create({"title": "Test parent item", "contexts": ['page']}); 
});

但它不起作用。

1 个答案:

答案 0 :(得分:4)

我认为您对chrome.contextMenus API的期望是错误的。它永远不会用于打开上下文菜单。它只能告诉Chrome在满足某些自定义条件时显示上下文菜单条目(请参阅create method的文档以了解有关定义这些条件的信息)。

在下面的截屏视频中,我展示了代码的预期行为。

  • 除非用户右键单击,否则不会显示上下文菜单。
  • 点击浏览器操作按钮后,在页面中打开上下文菜单时会显示上下文菜单条目。

如果您希望在单击时显示“弹出窗口”,请使用清单文件的"default_popup"部分中的"browser_action"条目。然后,以下显示:

您可以使用CSS让弹出窗口看起来像“上下文菜单”。 Browser action documentation提供了some examples