我正在使用附加SDK为Firefox制作附加组件,无论何时创建或切换到标签,我都需要以某种方式将活动标签网址添加到附加组件的内容中
我的main.js
看起来像这样:
var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var button = ToggleButton({
id: "my-button",
label: "my button",
icon: {
"16": "./img/icon-16.png",
"32": "./img/icon-32.png",
"64": "./img/icon-64.png"
},
onChange: handleChange
});
var panel = panels.Panel({
width: 640,
height: 400,
contentURL: self.data.url("index.html"),
onHide: handleHide
});
function handleChange(state) {
if (state.checked) {
panel.show({
position: button
});
}
}
function handleHide() {
button.state('window', {checked: false});
}
加载到面板中的index.html
有一些嵌入式JavaScript,我需要将当前网址发送到。
我查看了文档here,但它说的是内容脚本",我不确定我是否使用或需要使用。
那么这是最快捷的方式?感谢。
答案 0 :(得分:2)
您需要使用sdk/tabs
模块:
var tabs = require("sdk/tabs");
var activeTabURL = tabs.activeTab.url;
tabs.on("activate", tab => {
activeTabURL = tab.url;
});
tabs.on("ready", tab => {
if (tab == tabs.activeTab) {
activeTabURL = tab.url;
}
});
使用此activeTabURL
变量将包含活动标签的网址。