Как вы определяете, когда была показана панель Add-on SDK? - PullRequest
5 голосов
/ 29 июля 2011

Документация гласит:

show

Это событие генерируется при отображении панели.

Итак, в main.js я сделал это (где thePanel использует метод require("panel").Panel):

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

Но событие, похоже, не вызывается.Я также попытался сделать функцию в скрипте содержимого для window.onfocus, но она тоже не вызывается.

1 Ответ

5 голосов
/ 29 июля 2011

В SDK есть 2 вида событий:

  • встроенные события, определенные в API SDK
  • пользовательские события, которые определяет разработчик дополнения.

Чтобы гарантировать, что если вы определите свое собственное событие с именем "show", оно не будет конфликтовать со встроенным "show", всеми пользовательскими событиями - и только пользовательскими событиями -находятся внутри свойства "port".

Событие "show", которое вы здесь слушаете, является встроенным событием, поэтому вы не должны использовать "port" для его прослушивания.Поэтому следующий код должен делать то, что вы хотите:

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

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

panel.show();
...