2013-04-16 10 views
16

Gibt es eine Möglichkeit, das Hintergrundskript zu informieren alle derzeit geöffneten Registerkarten (d. H. Ihre Inhaltsskripte), dass ein Ereignis stattgefunden hat.Chrome-Erweiterung: Nachricht vom Hintergrundskript an * alle * Registerkarten senden

So etwas wie die folgenden im Grunde

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

Ich vermute, ich könnte eine Liste der geöffneten Tabs auf dem Hintergrund Skript zu halten, wenn das möglich ist, und verwendet diesen. Aber gibt es einen einfacheren Weg?

Antwort

38

Der Platzhalter wird nicht unterstützt. Die einzige Möglichkeit, alle Tabs zu erreichen, ist query alle vorhandenen Registerkarten, und senden Sie die Nachricht mit 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); 
    } 
}); 
+0

Ah das war einfach, danke! (Warten auf die verpflichtende Mindestzeit, bevor ich das akzeptieren kann.) –

Verwandte Themen