OnClick事件:在单击浏览器上下文菜单(在FF附加组件中)时导航到当前选项卡中的页面



我正在构建一个Firefox附加组件,该附加组件在浏览器上下文菜单中添加了一个选项。当用户单击上下文菜单中时,应打开特定网站(在同一选项卡中(。

我敢肯定,我在下面的代码存根中简化了此过程。我只是一个初学者,试图理解对象和onclick。问题:

  1. 以下代码有效吗?
  2. 我是否需要在清单中授予的任何特殊权限。

fyi:最终的附加功能应比上述所述更复杂。以上只是我需要解决的第一个问题。为简单起见&清晰度我现在要保留细节。

谢谢!

browser.menus.create({
id: "openSelection",
title: "Open selection in PhoneTool",
contexts: ["selection"]
});
browser.menus.onClicked.addListener(function(info, tab) {
if (info.menuItemId == "open-selection") {
onclick="location.href='http://hsv.de/';"
//define action here that should occur when "open-selection" is clicked
}
});

我在这里搜索,但是以前的问题围绕着如何 create 浏览器上下文菜单,但是我找不到围绕如何基于浏览器上下文中的单击到另一个页面的问题。菜单。

您问题的答案是:

  1. 不,您的代码无法正常工作。它将创建上下文菜单,当您选择文本时,菜单将显示。但是有了此代码,网页将不会在单击菜单项时打开。
  2. 您不需要任何额外的许可即可使用爆炸事件。

您应该使用网页/网站的URL创建一个选项卡,以将该页面加载到浏览器中。

browser.menus.onClicked.addListener(function(info, tab) {
  if (info.menuItemId == "log-selection") {
    browser.tabs.create({
        url: "http://hsv.de/"
    })
  }
});

您需要权限" TABS" 才能使用Tab API。因此,您应该将其包含在您的清单文件中。

最新更新