所以我正在开发我的第一个firefox插件,我有一个简单的面板,其中包含一些内容和链接。当我点击链接时,会在面板中打开链接。我希望能够在firefox选项卡或窗口中打开此链接。我尝试搜索mozdev文档,但没有找到任何解决方案。
答案 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.js
或main.js
中,你会有类似的内容:
const tabs = require("sdk/tabs");
let panel = Panel({ /* ... your panel ... */ });
panel.port.on("open-link", uri => tabs.open(uri));