2013-04-16 5 views
16

C'è un modo per avere lo script di sfondo informa tutte le schede attualmente aperte (vale a dire i loro script di contenuto) che un evento ha avuto luogo.Estensione Chrome: invia messaggio dallo script di sfondo a * tutte * schede

Qualcosa di simile a quanto segue fondamentalmente

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

ho il sospetto che potrei mantenere un elenco di schede aperte sullo script di fondo, se è possibile, e usare quella. Ma c'è un modo più semplice?

risposta

38

Il carattere jolly non è supportato. L'unico modo per raggiungere tutte le schede è di query tutte le schede esistenti e inviare il messaggio utilizzando 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 è stato facile, grazie! (Aspettando il periodo di tempo minimo obbligatorio prima che io possa accettarlo.) –

Problemi correlati