Firefox扩展在popap中加载页面

时间:2016-05-06 16:16:41

标签: firefox-addon firefox-addon-sdk

我想要一个firefox扩展,所以当你点击图标时会打开弹出窗口并在弹出窗口中加载我的页面。

我有下一期。我需要点击扩展图标来获取当前标签的URL并在弹出窗口中加载我的页面,并将该URL作为查询字符串发送。

因此,当您点击图标时,会打开弹出窗口并加载类似" http://example.com?url= {current-URL}"

的页面

问题是它在弹出窗口加载我的页面一次,下次点击扩展时它会打开已呈现的弹出窗口。这是我正在使用的代码:

var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var tabs = require('sdk/tabs');

var button = ToggleButton({
  id: "my-button",
  label: "My button",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onChange: handleChange
});

var panel = panels.Panel({
    width: 700,
    height: 543,
    contentURL: 'http://example.com?url='+ tabs.activeTab.url,
    contextMenu : true,
    onHide: handleHide
});

function handleChange(state) {
  if (state.checked) {
    panel.show({
      position: button
    });
  }
}

function handleHide() {
  button.state('window', {checked: false});
}

所以我想要的是每次点击扩展图标时它都会在面板AGAIN中加载我的页面,而不仅仅是显示已经呈现的页面。这有可能吗?我可以做什么,有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

Panel的contentURL属性定义了一个setter,因此更改url非常简单:

function handleChange(state) {
  if (state.checked) {
   panel.contentURL = 'http://example.com?url='+ tabs.activeTab.url,
   panel.show({
    position: button
    });
  }
}