5

ドキュメントには次のように記載されています。

見せる

このイベントは、パネルが表示されたときに発行されます。

だからmain.js私はこれをしました(メソッドthePanelを使用している場所require("panel").Panel):

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

しかし、イベントは呼び出されていないようです。また、コンテンツスクリプトで関数を実行しようとしましたwindow.onfocusが、それも呼び出されていないようです。

4

1 に答える 1

5

SDK には 2 種類のイベントがあります。

  • SDK API で定義された組み込みイベント
  • アドオン開発者が定義するユーザー定義イベント。

「show」という独自のイベントを定義した場合に、組み込みの「show」と競合しないようにするために、すべてのユーザー定義イベント (およびユーザー定義イベントのみ) が「port」プロパティ内にスコープされます。

ここでリッスンしている「show」イベントは組み込みイベントであるため、「port」を使用してリッスンしないでください。したがって、次のコードはあなたが望むことをするはずです:

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

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

panel.show();
于 2011-07-29T17:31:34.313 に答える