如何在 firefox 扩展面板中制作 link,以便在浏览器 window / 选项卡中打开?
How can I make a link in firefox extension panel, to open in browser window / tab?
所以我正在开发我的第一个 firefox 插件,我有一个简单的面板,其中包含一些内容和一个 link。当我单击 link 时,link 在面板本身中打开。我希望能够在 firefox 选项卡或 window 中打开此 link。我尝试搜索 mozdev 文档,但没有找到任何解决方案。
您可以向您的链接添加 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));
所以我正在开发我的第一个 firefox 插件,我有一个简单的面板,其中包含一些内容和一个 link。当我单击 link 时,link 在面板本身中打开。我希望能够在 firefox 选项卡或 window 中打开此 link。我尝试搜索 mozdev 文档,但没有找到任何解决方案。
您可以向您的链接添加 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));