2012-08-11 11 views
8

Czy istnieje sposób na odzyskanie wszystkich otwartych kart i posortowanie ich w tablicy w Chrome? Jeśli więc Gmail i YouTube były otwarte, w tablicy pojawiłyby się dwa wpisy o nazwach "gmail.com" i "youtube.com".Czy otwierasz karty w Chrome?

Odpowiedz

9

Tak, oto jak można to zrobić:

Uwaga: wymaga to uprawnień „zakładki”, które zostaną określone w pliku manifestu.

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); 
} 

W tym przykładzie właśnie dodałem adres URL karty, gdy pytałeś w tablicy, ale każdy obiekt "tabulacji" zawiera dużo więcej informacji. Adres URL będzie pełnym adresem URL, do którego możesz zastosować wyrażenie regularne, aby wyodrębnić nazwy domen z adresu URL.

+1

W jaki sposób można określić uprawnienie "zakładki" w pliku manifestu? Co mam napisać w pliku manifestu, aby włączyć tę opcję? –

+0

'chrome.windows' jest niezdefiniowany ... Co robisz w tym przypadku? –

3

Jeśli nie tworzysz wtyczki, nie ma sposobu, który znam, aby pobrać wszystkie nazwy otwartych kart, szczególnie jeśli karty zawierają treść z oddzielnych domen. Jeśli udało ci się coś takiego zrobić, może to być problem związany z bezpieczeństwem!

Można sprawdzić dokumentację Chrome tutaj: http://developer.chrome.com/extensions/devguide.html

+0

Buduję wtyczkę do przeglądarki Chrome. – Ray

+0

To złe wieści, ponieważ staram się ręcznie migrować wszystkie karty z Chrome na Firefox (drugi kierunek jest prosty, ponieważ mogę sprawić, że Firefox uruchomi dowolny skrypt na poziomie chrome: //). – lilydjwg

Powiązane problemy