2016-05-06 3 views
0

ユーザーが新しいアクティブなタブに切り替えると起動する基本的なクロム拡張機能があります。バックグラウンドページでURLが調べられ、URLに基​​づいて拡張子アイコンが変更されます。Chrome tabs.onActivated現在のタブのみを更新する

chrome.tabs.onActivated.addListener(function(tabInfo) { 
    chrome.tabs.get(tabInfo.tabId, function(tab) { 
    update_tab(...) 
    }); 
}); 

これは正常に動作しますが、私は直面しています問題は、時間によって、機能火災や決定は、アイコンを更新するためになされたものであり、ユーザーは再びタブを切り替えることができるということですが、アイコンがに基づいて変更されます前のタブ。

これ以上の信頼性はどのように処理できますか?

+0

あなたがbrowserActionアイコンについて話しているのならば、私はあなたのロジックをpageActionでビルドすることをお勧めします。ページアクションがアドレスバーからツールバーに移動したときに、(スピードの観点から)どのように動作するかわからない –

答えて

1

タブ単位のブラウザアクションアイコンを持つことができるため、タブの切り替えをトラッキングする必要はありません。

chrome.browserAction.setIconを使用してアイコンを更新する場合は、オプションのtabIdパラメータが必要です。同じことがsetTitleに当てはまります。

これを行うと、タブのアクティブ化について心配する必要はありません。 onUpdatedはURLの変更を通知します。

0

あなたもonUpdatedリスナーを追加してみてください:

chrome.tabs.onUpdated.addListener(function(tabInfo) { 
    chrome.tabs.get(tabInfo.tabId, function(tab) { 
    update_tab(...) 
    }); 
}); 

火災時にウィンドウの変更でアクティブなタブ。このイベントが発生した時点では、タブのURL は設定されていない可能性がありますが、URLが設定されている場合に通知される更新イベントは に聞くことができます。 https://developer.chrome.com/extensions/tabs

関連する問題