如何检测何时显示Add-on SDK面板?

时间:2011-07-29 13:09:18

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

The documentation说:

  

显示

     

显示面板时会发出此事件。

所以在main.js我这样做了(thePanel正在使用require("panel").Panel方法):

thePanel.port.on("show", function(d) {
    console.log('The panel has just been shown');
});

但事件似乎没有被调用。我也尝试在window.onfocus的内容脚本中执行一个函数,但似乎也没有调用。

1 个答案:

答案 0 :(得分:5)

SDK中有两种事件:

  • 内置事件,在SDK API中定义
  • 加载项开发人员定义的用户定义事件。

要确保如果您定义自己的名为“show”的事件,它将不会与内置的“show”发生冲突,所有用户定义的事件 - 以及仅用户定义的事件 - 都限定在“port”中属性。

您在这里收听的“show”事件是一个内置事件,因此您不应该使用“port”来监听它。所以下面的代码应该做你想要的:

var panel = require("panel").Panel({
});

panel.on("show", function() {
  console.log("panel is showing");
});

panel.show();