26

イベントが発生したことを現在開いているすべてのタブ (つまり、コンテンツ スクリプト)にバックグラウンド スクリプトで通知する方法はありますか。

基本的に次のようなもの

chrome.tabs.sendMessage("*", {foo: "bar"})

可能であれば、バックグラウンド スクリプトで開いているタブのリストを維持し、それを使用できると思います。しかし、もっと簡単な方法はありますか?

4

2 に答える 2

63

ワイルドカードはサポートされていません。すべてのタブに到達する唯一の方法は、既存のすべてのタブを照会し、 を使用してメッセージをディスパッチすることですchrome.tabs.sendMessage

chrome.tabs.query({}, function(tabs) {
    var message = {foo: bar};
    for (var i=0; i<tabs.length; ++i) {
        chrome.tabs.sendMessage(tabs[i].id, message);
    }
});
于 2013-04-16T20:39:01.677 に答える