2011-11-11 21 views
2

現在選択されているタブを識別できるGoogle Chromeの拡張機能を作成しようとしています。私はchrome.tabs.onSelectionChangedメソッドでこれを行いましたが、ウィンドウを切り替えると、これは起動されません。 chrome.windows.onFocusChangedを使用して、ウィンドウの変更を検出してからchrome.tabs.getSelectedメソッドを使用する予定です。しかし、問題はchrome.windows.onFocusChangedが2回以上発射されたようです。私が間違っていなければ、ウィンドウ-1を返し、最初に作成されたウィンドウ(通常は1)を返し、現在のウィンドウを返します。最初のウィンドウが選択されている場合は、-1、次に1です。Chrome拡張機能 - Chrome.windows.onFocusChanged動作

ここで正しい方法を使用していますか?これを行うより良い方法はありますか?私がそれに固執すれば、ウィンドウの変化がちょっと面倒なのかどうかを把握する必要があるかもしれません。

+0

Paul、情報ありがとうございます! 「編集済み」セクションを回答に移動して、システムが自動的に受け入れられるようにしてください。とても有難い! – cxw

+1

良いアイデア@cxw。完了し、ありがとう! – Paul

答えて

1

金田さんは私自身の解決策に取り組んでいました。似たようなことに興味がある人は、代わりに、onFocusChangedをインジケーターとして使用して、ウィンドウの変更が起こってからrequestListenerが起動するようにしました。コンテンツスクリプトを使用して、フォーカスが既にそのウィンドウにあることを示すwindow.focusイベントがあるときはいつでも、拡張にリクエストを送信しました。その後、リクエストリスナーは自分自身を削除します。残念ながら、このアプローチでは、すべてのタブがフォーカスを得るたびにリクエストを送信する必要があります。私が推測することを修正するための調整がいくつかありますが、その間に要求が送信されるたびに、多くのリソースを消費しているように見えるわけではありません。