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

Tom*_*Tom 5 javascript firefox-addon firefox-addon-sdk

文件说:

节目

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

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

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

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

小智 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();
Run Code Online (Sandbox Code Playgroud)