将当前标签的URL发送到插件内容

时间:2015-04-25 10:01:54

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

我正在使用附加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,但它说的是内容脚本",我不确定我是否使用或需要使用。

那么这是最快捷的方式?感谢。

1 个答案:

答案 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变量将包含活动标签的网址。