2012-08-11 8 views
8

Existe-t-il un moyen de récupérer tous les onglets et de les trier dans un tableau dans Chrome? Donc, si Gmail et YouTube étaient ouverts, il y aurait deux entrées dans le tableau intitulé "gmail.com" et "youtube.com".Récupération des onglets ouverts dans Chrome?

Répondre

9

Oui, voici comment vous pouvez le faire:

Note: cela nécessite l'autorisation « onglets » à spécifier dans votre fichier manifeste.

chrome.windows.getAll({populate:true}, getAllOpenWindows); 

function getAllOpenWindows(winData) { 

    var tabs = []; 
    for (var i in winData) { 
    if (winData[i].focused === true) { 
     var winTabs = winData[i].tabs; 
     var totTabs = winTabs.length; 
     for (var j=0; j<totTabs;j++) { 
      tabs.push(winTabs[j].url); 
     } 
    } 
    } 
    console.log(tabs); 
} 

Dans cet exemple, je suis simple ajout d'URL de l'onglet que vous avez demandé dans un tableau, mais chaque objet « onglet » contient beaucoup plus d'informations. Url sera l'URL complète, vous pouvez appliquer une expression régulière pour extraire les noms de domaine de l'URL.

+1

Comment l'autorisation "onglets" peut-elle être spécifiée dans le fichier manifeste? Que dois-je écrire dans le fichier manifeste pour activer cette option? –

+0

'chrome.windows' est indéfini ... Que faites-vous dans ce cas? –

3

Sauf si vous construisez un plugin, je ne connais aucun moyen de récupérer tous les noms des onglets ouverts, en particulier si les onglets contiennent du contenu provenant de domaines distincts. Si vous pouviez faire une telle chose, cela pourrait être un problème de sécurité!

Vous pouvez consulter la documentation Chrome ici: http://developer.chrome.com/extensions/devguide.html

+0

Je construis un plugin Chrome. – Ray

+0

C'est une mauvaise nouvelle puisque j'essaie de migrer manuellement tous les onglets de Chrome vers Firefox (l'autre direction est simple car je peux faire en sorte que Firefox lance n'importe quel script au niveau chrome: //). – lilydjwg

Questions connexes