在firefox中显示Widget



我的firefox插件使用小部件,当我点击它时它显示面板。下面是它的代码

var Widget = require("widget").Widget;
var tabs = require('tabs');
var data = require("sdk/self").data;
var panel = require("sdk/panel").Panel({
  contentURL: "about:blank",
  width: 200,
  height: 480,
  onHide: function(){
    panel.contentURL = data.url("loading.html")
  }
});
exports.main = function() {
    // Widget documentation: https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/widget.html
    var widget = new Widget({
        id: "MobileView-widget-1",
        label: "MobileView",
        tooltip : "Start Mobile View",
        panel: panel,
        onClick: function() {
            panel.contentURL = "https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs#activeTab";
        },
        contentURL: data.url("mobile.png")
    });
};

当我点击这个小部件时,它会显示它上面的面板,但是当焦点消失时,它会立即关闭并重新开始。我如何确保它不会在失去焦点时关闭,但我需要再次单击小部件以隐藏它

小部件系统在Firefox 29中被删除,您现在必须使用这个:https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/ui

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": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onChange: handleChange
});
var panel = panels.Panel({
  contentURL: self.data.url("panel.html"),
  onHide: handleHide
});
function handleChange(state) {
  if (state.checked) {
    panel.show({
      position: button
    });
  }
}
function handleHide() {
  button.state('window', {checked: false});
}

最新更新