1

ポップアップが開いているかホバーされているときに拡張機能のアイコンを変更する方法を見つけようとしています。次を使用して、ポップアップを開くときにそれを行う方法を見つけました。

chrome.browserAction.onClicked.addListener(updateIcon);

しかし、ポップアップを閉じるイベントをキャッチする方法が見つかりませんでした。私はポップアップコードからこれを使用しようとしました:

 var port = chrome.runtime.connect();
  port.onDisconnect.addListener(function()
  {
     alert('closed');
  });

しかし、失敗しました。

何か案は?

ありがとう。

4

1 に答える 1

2

ポップアップ ページがバックグラウンド スクリプトに接続していると仮定して、Port.onDisconnect コードをバックグラウンド スクリプトに移動してみてください。

  port.onDisconnect.addListener(function()
  {
     alert('closed');
  });

ポップアップを閉じた後、それは死んでおり、 Port.onDisconnect イベントを検出できないため、あなたのやり方がうまくいかなかったと思います。それをバックグラウンド スクリプトに移動すると、まだ生きているはずで、ポートが切断されたときに通知され、ボタンのアイコン自体が変更される可能性があります。

拡張機能がホバーされているときにアイコンを変更する場合、ツールバーのボタンがホバーされているときに行うか、ポップアップ ページにホバーされているときに行うかによって異なります。前者のことなら、ありえないと思います。後者の場合、ポップアップ ページはイベント リスナーと「updateIcon」関数を介してそれを実行できる必要があります。

于 2013-06-24T03:03:17.713 に答える