2011-03-23 3 views

Répondre

14

Vous pouvez le faire comme ceci:

chrome.tabs.getAllInWindow(null, function(tabs){ 
    for (var i = 0; i < tabs.length; i++) { 
    chrome.tabs.sendRequest(tabs[i].id, { action: "xxx" });       
    } 
}); 

Après cela pour prendre soin de votre article, si vous pouvez le faire comme ceci:

document.getElementById('item') 

Ne pas oublier que vous ne pouvez pas manipuler le HTML en utilisant la "page d'arrière-plan" Donc le premier code snip est pour la page d'arrière-plan, et le second doit être sur un script de contenu;)

+0

Ahhh vous me devança: p –

+0

Vous pouvez ajouter à vérifier l'élément qu'il peut envoyer document.getElementById (« item ») = null et sauver ça! quelque part et récupérez-le pour déterminer si l'élément existe sur la page. –

+0

Désolé mec ... ^^ – Sindar

45

Il semble que cette méthode a été abandonnée au profit de chrome.tabs.query:

http://developer.chrome.com/extensions/tabs.html#method-query

Alors maintenant, vous voulez faire:

chrome.tabs.query({}, function(tabs) { /* blah */ }); 

Passer un paramètre queryInfo vide renverrait tous les onglets.

+2

mais comment cela se répercute-t-il sur les onglets? Y a-t-il une méthode de longueur pour 'tabs'? La plupart des méthodes d'API utilisent une seule propriété d'onglet ou de tabulation, vous devez donc les indexer avec une variable comme 'tabs [0] ... tabs [n]'. Comment obtenir n? – jiggunjer

+0

@jiggunjer, n = tabs.length, tabs - est un tableau –

+0

@Golden, Que se passe-t-il si vous mettez le premier argument en tant que 'null' au lieu de' {} '? – Pacerier

0

J'utilise celui

chrome.tabs.getAllInWindow(null, function(tabs) { 
     $.each(tabs, function() { 
     // u can use 'this.id' to work with evey tab 
     }); 
}); 
Questions connexes