所以。我遇到了一些问题,我的面板并不总是显示(尽管插件的其余部分似乎仍在工作)。我正在尝试写一些日志来找出发生这种情况的原因,但有些事情我不太明白。
为了进行实验,我制作了一个简单的附加组件
// main.js
const panels = require("panel");
const {Cc, Ci} = require("chrome");
const widgets = require("widget");
var my_widget = widgets.Widget({
id: "google-link",
label: "Click me",
contentURL: "http://google.com/favicon.ico",
width: 20,
height: 20,
panel: my_panel,
onClick: function() {
my_panel.show();
console.log('Panel displaying? ' + my_panel.isShowing);
}
});
var my_panel = panels.Panel({
width: 500,
height: 500,
contentURL: "http://google.com",
});
my_panel.port.on("show", function() {
console.log('Panel emitted show');
});
首先发生的事情是:isShowing
总是false
,即使我清楚地看到面板。而且show
事件似乎永远不会被触发(我真的很想抓住这个error
事件,但这只是为了首先找到事件)。
细则:这是使用 SDK 1.6.1 和 Firefox 10ESR。也许这是在以后的版本中解决的问题,我不知道。无论哪种方式,我都想知道我是否在这里思考。