2011-07-29 6 views
5

The documentationは言う:アドオンSDKパネルが表示されたときは、どのように検知しますか?

ショー

パネルが表示されているときに、このイベントが生成されます。

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

をしかし、イベントが呼び出されていないようです:(thePanelrequire("panel").Panelメソッドを使用している場合)

だから main.jsに、私はこれをしませんでした。私も window.onfocusのコンテンツスクリプトで機能を試してみましたが、どちらも呼び出されていないようです。

答えて

5

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

  • 内蔵のアドオン開発者が定義するSDKのAPI
  • ユーザー定義イベント、で定義されたイベントは、。

"show"という独自のイベントを定義すると、組み込みの "show"と衝突しないように、すべてのユーザー定義イベントとユーザー定義イベントのみがスコープ内にスコープされます。 "ポート"プロパティ。

ここで聞いている "show"イベントはビルトインイベントなので、 "port"を使用してそれを聞くべきではありません。だから、次のコードはあなたが望むようにする必要があります:

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

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

panel.show(); 
+0

ありがとう、これは物事をクリアします。 – Tom

関連する問題