24

Kod służy do wyprowadzania bieżącego obiektu tabulatora dla strony, którą użytkownik przegląda, ale po prostu wyświetla niezdefiniowany. Jest uruchamiany na stronie akcji przeglądarki.Jak korzystać z chrome.tabs.getCurrent, aby uzyskać obiekt strony w rozszerzeniu Chrome?

chrome.tabs.getCurrent(function(tab){ 
    console.log(tab); 
}); 

Szukałem na documentation io ile mogę powiedzieć kod wydaje się dopasować to, co mówi.

+1

Strony wyskakujące przeglądarki przeglądarki nie są częścią żadnej karty, więc 'tabs.getCurrent()' nie będzie działać. Zamiast tego, odpowiedź Serga z 'tabs.getSelected()' powinna załatwić sprawę. –

Odpowiedz

17

Spróbuj:

chrome.tabs.getSelected(null, function(tab){ 
    console.log(tab); 
}); 
+6

Działa, dziękuję! ale dlaczego? : -/ –

+5

Przestarzałe, patrz odpowiedź @konstantin poniżej. – lionello

+0

'getCurrent()' nie jest prawie takie samo jak wycofane 'getSelected()' lub odpowiedź poniżej, pierwsza metoda pobiera zakładkę, z której skrypt jest uruchomiony, podczas gdy druga pobiera bieżącą zaznaczoną (aktywną) kartę – novalain

81

Sposób getSelected() została zaniechana, ponieważ Google Chrome 16 (ale wiele artykułów w oficjalnej dokumentacji nie zostały jeszcze zaktualizowane). Official message is here. Aby uzyskać kartę wybraną w określonym oknie, użyj chrome.tabs.query() z argumentem {'active': true}. Teraz powinno to wyglądać następująco:

chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) { 
    console.log(tabs[0]); 
}); 
+0

to zawsze zwraca tablicę długości 0 w wywołaniu zwrotnym ( – SuperUberDuper

+0

co jeśli w jednym pulpicie mam otwarte 2 okna chrome, każdy pokazuje mi kartę, w tym przypadku jest to możliwe, aby mieć> 1 aktywne karty? – lsheng

Powiązane problemy