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?
8
A
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.
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
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ę? –
'chrome.windows' jest niezdefiniowany ... Co robisz w tym przypadku? –