2010-11-11 19 views
0

J'essaie de compter le nombre d'onglets qui sont ouverts dans mon navigateur google chrome avec javascript. Est-ce que quelqu'un sait comment faire ça?Compte le nombre de fenêtres ouvertes

J'ai écrit du javascript que je veux répéter 10 fois puis arrêter. Après l'achèvement d'une itération, j'ouvre une nouvelle fenêtre en utilisant:

window.open("http://www.test.com"); 

Je veux faire cela 10 fois que d'arrêter. Peut-être qu'il ya une meilleure façon que ce que je pense ...

+0

Etes-vous en train d'écrire une extension ou de simplement coder sur une page? – Pointy

+0

Oui, j'écris une extension google chrome – milan

Répondre

0

je ne pouvais pas trouver un moyen de faire ce que je voulais, donc je pris une approche différente. Je l'ai dit, laisse voir si google a l'option en chrome pour limiter le nombre d'onglets ouverts et j'ai trouvé quelqu'un a écrit une extension pour faire exactement cela. Je ne sais pas comment il a fait mais ça fonctionne vraiment. Controlled multi-tab browsing

-1

Si tout ce que vous voulez faire est d'ouvrir dix onglets:

var i; 
for (i = 0; i < 10; i++) { 
    window.open("http://www.test.com"); 
} 

Mais non, je ne crois pas que vous pouvez compter le nombre de ouvrir des onglets car cela pourrait révéler des informations à des sites Web que vous ne voulez pas qu'ils sachent. (Voulez-vous que les sites Web au hasard que vous visitez sachent combien d'onglets vous avez ouverts?)

+0

Pas exactement ce que je cherche, – milan

0

Heureusement, les pages Web sont en mode sandbox afin que les autres sites Web ne puissent pas y accéder. Si elles sont les fenêtres que vous avez ouvert à l'aide window.open vous pouvez enregistrer la référence que vous recevez à la fenêtre:

var win = window.open(url);

Vous pouvez bien sûr pousser cela à un tableau si vous ouvrez un grand nombre de les fenêtres.

var wins = []; 
//looping stuff here 
wins.push(window.open(url[i]); 
1

Je pense que la boucle est très bien, mais si vous voulez garder une trace,

var winList = new Array(); 
var count = 10; 

for(var i=0; i < count; i++){ 
    winList[i] = window.open("http://www.test.com"); 
} 

De cette façon, vous pouvez garder les références à vos fenêtres.

HTH

0

Regardez le Google Chrome Extensions Developer Guide, en particulier la page Tabs et la fonction getAllInWindow

chrome.tabs.getAllInWindow(integer windowId, function callback) 

Lorsque la fonction de rappel reçoit un tableau d'onglets. Ce qui signifie que vous pouvez obtenir sa longueur.

Et si les onglets que vous voulez garder une trace de sont peut-être dans des fenêtres différentes, alors vous devez regarder la page Windows et la fonction getAll

chrome.windows.getAll(object getInfo, function callback) 

Utilisez cette option pour itérer sur toutes les fenêtres et appelez getAllInWindow . Et vous êtes tous ensemble.

+0

Je pense que les API (chrome.tabs.getAllInWindow) sont obsolètes. J'utilise ce moyen plus facile: 'chrome.window.tabs.length;' –