如何在firefox扩展面板中创建链接,在浏览器窗口/选项卡中打开?

时间:2015-09-02 11:19:27

标签: firefox firefox-addon firefox-addon-sdk

所以我正在开发我的第一个firefox插件,我有一个简单的面板,其中包含一些内容和链接。当我点击链接时,会在面板中打开链接。我希望能够在firefox选项卡或窗口中打开此链接。我尝试搜索mozdev文档,但没有找到任何解决方案。

1 个答案:

答案 0 :(得分:4)

您可以为链接添加target属性(如果您想每次都打开新标签,则为_blank);或截取您在面板文档中执行的任何click,然后向附加代码发送消息,以打开选项卡。类似的东西:

document.documentElement.addEventListener("click", event => {
  let a = event.target.closest("a");

  if (a && a.href) {
    // replace `self` with `addon` if it's a trusted document and
    // it's not a `contentScriptFile`
    self.port.emit("open-link", a.href);
  }
});

然后在index.jsmain.js中,你会有类似的内容:

const tabs = require("sdk/tabs");

let panel = Panel({ /* ... your panel ... */ });

panel.port.on("open-link", uri => tabs.open(uri));