0

我成功创建了我的第一个 Chrome 扩展程序。它现在仅在单击扩展图标而不是在背景上时运行,这很棒。但是,我想向我的扩展程序添加更多操作我一直在尝试使用扩展程序弹出窗口来运行其他功能,但我无法使其工作。它不一定是那样的,所以我愿意接受建议。我不想使用上下文菜单。我希望人们单击扩展图标并向他们显示“菜单”。

现在,我的扩展程序仅在找到有效页面(来自 mydomain.com)时才会提醒消息,并且它会找到一个名为“returnURL”的隐藏字段。它会提醒该值。

我希望能够添加单击图标的功能,而是显示具有多个选项的选项菜单。

像这样的东西:

单击扩展图标并显示两个选项

  • 获取响应 URL(此选项将运行我现在拥有的当前功能)
  • 做其他事情(所以我可以在加载的页面上执行另一个函数)

...以及更多选项,如果我需要在我的扩展的未来版本中添加它们。

我如何修改我的扩展来做到这一点。

这是我的代码:

清单.json



    {
            "name": "Get Response URL",
            "version": "1.0",
            "manifest_version": 2,
            "browser_action": {
            "default_icon": "mkto_icon.png",
            "name": "Click to get URL"
            },
            "background":{
                "scripts":["background.js"]
            },
            "permissions":["http://mydomain.com/*"]
     }

背景.js



    chrome.browserAction.onClicked.addListener(function (tab) { //Fired when User Clicks ICON
        if (tab.url.indexOf("http://mydomain.com/") != -1) { // Inspect whether the place where user clicked matches with our list of URL
            chrome.tabs.executeScript(tab.id, {
                "file": "contentscript.js"
            }, function () { // Execute your code
                console.log("Script Executed .. "); // Notification on Completion
            });
        }
    });

内容脚本.js



    if (document.getElementsByName("returnURL")){
    alert("\nThe Response URL on this form is:\n\n" + document.getElementsByName("returnURL")[0].value);
    }

我按照我在 Google Extensions 开发者网站上找到的文档进行操作,但我无法让它工作。非常感谢您的帮助。

4

1 回答 1

4

您无法拥有带有 Chrome 扩展程序的真实菜单。但是,您可以在单击按钮时显示 HTML 页面(弹出窗口)。您可以以类似于菜单的方式设置此 HTML 页面的样式:

"browser_action": {
   "default_icon": "mkto_icon.png",
   "default_title": "Click here to open menu",
   "default_popup": "popup.html"
 },

将文件添加popup.html到您的扩展名以及您想要显示的任何内容。弹出页面加载的脚本可以加载内容脚本并与它们进行通信,就像背景页面一样。

供参考:浏览器操作文档

于 2013-12-19T13:04:30.327 回答