让firefox中的面板永远打开

时间:2014-07-18 07:15:42

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

我的firefox插件使用面板,当我点击其他地方时面板消失,包括切换标签。以下是它的代码

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({
  contentURL: "about:blank",
  width: 320,
  height: 480,
  onHide: handleHide,
  onHide: handleHide
});

function handleChange(state) {
  if (state.checked) {
    panel.contentURL = tabs.activeTab.url;
    panel.show({
      position: button
    });
  }
};

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

当我点击图标时,它会显示上方的面板,但是当焦点消失时,它会立即关闭并重新开始。我如何确定,它不会关闭失去焦点但我需要再次点击小部件来隐藏它。

1 个答案:

答案 0 :(得分:2)

无法在SDK中完成。有几个问题需要面对,加上专家组没有实施以这种方式工作。但是,您可以手动执行此操作,但是您遇到一些不容易的问题。您可以在此处查看我的答案:firefox add-on sdk: make panel to stay visible也指向此WONTFIX错误:https://bugzilla.mozilla.org/show_bug.cgi?id=595040