Opis
Użyj interfejsu chrome.tabs API, aby korzystać z systemu kart przeglądarki. Za pomocą tego interfejsu API możesz tworzyć, modyfikować i przenosić karty w przeglądarce.
Interfejs Tabs API nie tylko oferuje funkcje manipulowania kartami i zarządzania nimi, ale także może wykrywać język karty, robić zrzuty ekranu i komunikować się ze skryptami treści karty.
Uprawnienia
Większość funkcji nie wymaga żadnych uprawnień. Na przykład utworzenie nowej karty, ponowne wczytanie karty, przejście do innego adresu URL itp.
Podczas pracy z interfejsem Tabs API deweloperzy powinni pamiętać o 3 uprawnieniach.
- Uprawnienie „karty”
To uprawnienie nie daje dostępu do przestrzeni nazw
browser.tabs. Zamiast tego rozszerzenie może wywoływać funkcjętabs.query()w przypadku 4 właściwości wrażliwych w instancjachtabs.Tab:url,pendingUrl,titleifavIconUrl.{ "name": "My extension", ... "permissions": [ "tabs" ], ... }- Uprawnienia hosta
Uprawnienia hosta umożliwiają rozszerzeniu odczytywanie i wysyłanie zapytań dotyczących 4 wrażliwych właściwości
tabs.Tabpasującej karty. Mogą też wchodzić w bezpośrednią interakcję z pasującymi kartami za pomocą metod takich jaktabs.captureVisibleTab(),scripting.executeScript(),scripting.insertCSS()iscripting.removeCSS().{ "name": "My extension", ... "host_permissions": [ "http://*/*", "https://*/*" ], ... }- Uprawnienie „activeTab”
activeTabprzyznaje rozszerzeniu tymczasowe uprawnienia dotyczące hosta dla bieżącej karty w odpowiedzi na wywołanie przez użytkownika. W przeciwieństwie do uprawnień hostaactiveTabnie powoduje wyświetlania żadnych ostrzeżeń.{ "name": "My extension", ... "permissions": [ "activeTab" ], ... }
Przypadki użycia
W sekcjach poniżej znajdziesz kilka typowych przypadków użycia.
Otwieranie strony rozszerzenia w nowej karcie
Częstym wzorcem w przypadku rozszerzeń jest otwieranie strony wprowadzającej w nowej karcie po zainstalowaniu rozszerzenia. Poniższy przykład pokazuje, jak to zrobić.
background.js:
browser.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
browser.tabs.create({
url: "onboarding.html"
});
}
});
Pobieranie bieżącej karty
Ten przykład pokazuje, jak skrypt service worker rozszerzenia może pobrać aktywną kartę z aktualnie aktywnego okna (lub z ostatnio aktywnego okna, jeśli żadne okno Chrome nie jest aktywne). Można ją zwykle traktować jako bieżącą kartę użytkownika.
async function getCurrentTab() {
let queryOptions = { active: true, lastFocusedWindow: true };
// `tab` will either be a `tabs.Tab` instance or `undefined`.
let [tab] = await browser.tabs.query(queryOptions);
return tab;
}
function getCurrentTab(callback) {
let queryOptions = { active: true, lastFocusedWindow: true };
browser.tabs.query(queryOptions, ([tab]) => {
if (browser.runtime.lastError)
console.error(browser.runtime.lastError);
// `tab` will either be a `tabs.Tab` instance or `undefined`.
callback(tab);
});
}
Wyciszanie określonej karty
Ten przykład pokazuje, jak rozszerzenie może przełączać stan wyciszenia danej karty.
async function toggleMuteState(tabId) {
const tab = await browser.tabs.get(tabId);
const muted = !tab.mutedInfo.muted;
await browser.tabs.update(tabId, {muted});
console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
}
function toggleMuteState(tabId) {
browser.tabs.get(tabId, async (tab) => {
let muted = !tab.mutedInfo.muted;
await browser.tabs.update(tabId, { muted });
console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
});
}
Przenoszenie bieżącej karty na pierwszą pozycję po kliknięciu
Ten przykład pokazuje, jak przenieść kartę, gdy przeciąganie może być w toku lub nie. W tym przykładzie użyto browser.tabs.move, ale tego samego wzorca oczekiwania możesz używać w przypadku innych wywołań, które modyfikują karty podczas przeciągania.
browser.tabs.onActivated.addListener(moveToFirstPosition);
async function moveToFirstPosition(activeInfo) {
try {
await browser.tabs.move(activeInfo.tabId, {index: 0});
console.log("Success.");
} catch (error) {
if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
setTimeout(() => moveToFirstPosition(activeInfo), 50);
} else {
console.error(error);
}
}
}
browser.tabs.onActivated.addListener(moveToFirstPositionMV2);
function moveToFirstPositionMV2(activeInfo) {
browser.tabs.move(activeInfo.tabId, { index: 0 }, () => {
if (browser.runtime.lastError) {
const error = browser.runtime.lastError;
if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
setTimeout(() => moveToFirstPositionMV2(activeInfo), 50);
} else {
console.error(error);
}
} else {
console.log("Success.");
}
});
}
Przekazywanie wiadomości do skryptu treści wybranej karty
Ten przykład pokazuje, jak skrypt service worker rozszerzenia może komunikować się ze skryptami treści w określonych kartach przeglądarki za pomocą tabs.sendMessage().
function sendMessageToActiveTab(message) {
const [tab] = await browser.tabs.query({ active: true, lastFocusedWindow: true });
const response = await browser.tabs.sendMessage(tab.id, message);
// TODO: Do something with the response.
}
Przykłady rozszerzeń
Więcej demonstracji rozszerzeń interfejsu Tabs API znajdziesz w tych miejscach:
Typy
MutedInfo
Stan wyciszenia karty i przyczyna ostatniej zmiany stanu.
Właściwości
-
extensionId
ciąg znaków opcjonalny
Identyfikator rozszerzenia, które zmieniło stan wyciszenia. Nie jest ustawiony, jeśli rozszerzenie nie było przyczyną ostatniej zmiany stanu wyciszenia.
-
Wyciszono
wartość logiczna
Czy karta jest wyciszona (nie może odtwarzać dźwięku). Karta może być wyciszona, nawet jeśli nie odtwarzała dźwięku lub nie odtwarza go obecnie. Odpowiada temu, czy wyświetlany jest wskaźnik wyciszenia dźwięku.
-
powód,
MutedInfoReason opcjonalny
Powód wyciszenia lub wyłączenia wyciszenia karty. Nie jest ustawiony, jeśli stan wyciszenia karty nigdy nie został zmieniony.
MutedInfoReason
Zdarzenie, które spowodowało zmianę stanu wyciszenia.
Typ wyliczeniowy
„user”
Dane wejściowe użytkownika ustawiły stan wyciszenia.
„capture”
Rozpoczęto nagrywanie karty, co spowodowało zmianę stanu wyciszenia.
„extension”
Rozszerzenie, zidentyfikowane przez pole extensionId, ustawiło stan wyciszenia.
Tab
Właściwości
-
aktywna
wartość logiczna
Informacja o tym, czy karta jest aktywna w swoim oknie. Nie musi to oznaczać, że okno jest aktywne.
-
audible
wartość logiczna opcjonalna
Chrome 45 lub nowszyCzy karta emitowała dźwięk w ciągu ostatnich kilku sekund (ale może nie być słyszalny, jeśli jest wyciszona). Odpowiada temu, czy wyświetla się wskaźnik „dźwięk z głośnika”.
-
autoDiscardable
wartość logiczna
Chrome 54 lub nowszaOkreśla, czy karta może zostać automatycznie zamknięta przez przeglądarkę, gdy zasoby są ograniczone.
-
odrzucono
wartość logiczna
Chrome 54 lub nowszaCzy karta została zamknięta. Odrzucona karta to karta, której zawartość została usunięta z pamięci, ale nadal jest widoczna na pasku kart. Jego zawartość zostanie ponownie wczytana przy następnej aktywacji.
-
favIconUrl
ciąg znaków opcjonalny
Adres URL favikony karty. Ta właściwość jest obecna tylko wtedy, gdy rozszerzenie ma uprawnienie
"tabs"lub uprawnienia hosta do strony. Może to być też pusty ciąg znaków, jeśli karta się wczytuje. -
zawieszony
wartość logiczna
Chrome 132 lub nowszaCzy karta jest zablokowana. Zablokowana karta nie może wykonywać zadań, w tym modułów obsługi zdarzeń ani liczników czasu. Jest widoczna na pasku kart, a jej zawartość jest wczytywana do pamięci. Po aktywacji zostanie odblokowane.
-
groupId
liczba
Chrome 88 lub nowszaIdentyfikator grupy, do której należy karta.
-
wysokość
number opcjonalny
Wysokość karty w pikselach.
-
wyróżniona
wartość logiczna
Czy karta jest wyróżniona.
-
id
number opcjonalny
Identyfikator karty. Identyfikatory kart są unikalne w ramach sesji przeglądarki. W niektórych przypadkach karta może nie mieć przypisanego identyfikatora, np. podczas wysyłania zapytań dotyczących kart zewnętrznych za pomocą interfejsu
sessionsAPI. W takim przypadku może być obecny identyfikator sesji. Identyfikator karty można też ustawić nachrome.tabs.TAB_ID_NONEw przypadku aplikacji i okien narzędzi deweloperskich. -
incognito,
wartość logiczna
Określa, czy karta znajduje się w oknie incognito.
-
indeks
liczba
Indeks karty w oknie liczony od zera.
-
lastAccessed
liczba
Chrome 121 lub nowszaOstatni raz, gdy karta stała się aktywna w swoim oknie, w milisekundach od początku epoki.
-
mutedInfo
MutedInfo opcjonalny
Chrome 46 lub nowszaStan wyciszenia karty i przyczyna ostatniej zmiany stanu.
-
openerTabId
number opcjonalny
Identyfikator karty, która otworzyła tę kartę (jeśli istnieje). Ta właściwość jest obecna tylko wtedy, gdy karta otwierająca nadal istnieje.
-
pendingUrl
ciąg znaków opcjonalny
Chrome 79 lub nowszaAdres URL, do którego przechodzi karta, zanim zostanie zatwierdzony. Ta właściwość jest obecna tylko wtedy, gdy rozszerzenie ma uprawnienie
"tabs"lub uprawnienia hosta do strony i trwa nawigacja. -
przypięty
wartość logiczna
Czy karta jest przypięta.
-
wybrano
wartość logiczna
WycofanoUżyj
tabs.Tab.highlighted.Określa, czy karta jest wybrana.
-
sessionId
ciąg znaków opcjonalny
Identyfikator sesji używany do jednoznacznego identyfikowania karty uzyskanej z interfejsu
sessionsAPI. -
splitViewId
number opcjonalny
Chrome 140+Identyfikator widoku dzielonego, do którego należy karta.
-
status
TabStatus opcjonalny
Stan wczytywania karty.
-
tytuł
ciąg znaków opcjonalny
Tytuł karty. Ta właściwość jest obecna tylko wtedy, gdy rozszerzenie ma uprawnienie
"tabs"lub uprawnienia hosta do strony. -
URL
ciąg znaków opcjonalny
Ostatni zatwierdzony adres URL głównej ramki karty. Ta właściwość jest obecna tylko wtedy, gdy rozszerzenie ma uprawnienie
"tabs"lub uprawnienia hosta do strony. Może to być pusty ciąg znaków, jeśli karta nie została jeszcze zatwierdzona. Zobacz teżTab.pendingUrl. -
szerokość
number opcjonalny
Szerokość karty w pikselach.
-
windowId
liczba
Identyfikator okna zawierającego kartę.
TabStatus
Stan wczytywania karty.
Typ wyliczeniowy
„unloaded”
"loading"
„complete”
WindowType
Typ okna.
Typ wyliczeniowy
„normal”
„popup”
„panel”
„app”
„devtools”
ZoomSettings
Określa, jak i w jakim zakresie mają być obsługiwane zmiany powiększenia na karcie.
Właściwości
-
defaultZoomFactor
number opcjonalny
Chrome 43 lub nowszaSłuży do zwracania domyślnego poziomu powiększenia bieżącej karty w wywołaniach funkcji tabs.getZoomSettings.
-
tryb
ZoomSettingsMode opcjonalnie
Określa sposób obsługi zmian powiększenia, czyli podmiot odpowiedzialny za rzeczywiste skalowanie strony. Domyślnie jest to
automatic. -
zakres
ZoomSettingsScope opcjonalny
Określa, czy zmiany powiększenia mają być zachowywane dla źródła strony, czy mają obowiązywać tylko na tej karcie. Domyślnie jest to
per-originw trybieautomaticiper-tabw pozostałych przypadkach.
ZoomSettingsMode
Określa sposób obsługi zmian powiększenia, czyli podmiot odpowiedzialny za rzeczywiste skalowanie strony. Domyślnie jest to automatic.
Typ wyliczeniowy
„automatic”
Zmiany powiększenia są obsługiwane automatycznie przez przeglądarkę.
„manual”
Zastępuje automatyczną obsługę zmian powiększenia. Zdarzenie onZoomChange nadal będzie wysyłane, a rozszerzenie będzie musiało nasłuchiwać tego zdarzenia i ręcznie skalować stronę. Ten tryb nie obsługuje per-origin powiększania, więc ignoruje ustawienie powiększenia scope i zakłada per-tab.
„disabled”
Wyłącza wszystkie opcje powiększania na karcie. Karta powróci do domyślnego poziomu powiększenia, a wszystkie próby zmiany powiększenia zostaną zignorowane.
ZoomSettingsScope
Określa, czy zmiany powiększenia mają być zachowywane dla źródła strony, czy mają obowiązywać tylko na tej karcie. Domyślnie jest to per-origin w trybie automatic i per-tab w pozostałych przypadkach.
Typ wyliczeniowy
„per-origin”
Zmiany powiększenia są zachowywane w przypadku pochodzenia powiększonej strony, tzn. wszystkie inne karty, na których otwarto to samo pochodzenie, również są powiększone. Ponadto per-origin zmiany powiększenia są zapisywane ze źródłem, co oznacza, że podczas przechodzenia do innych stron w tym samym źródle wszystkie są powiększane o ten sam współczynnik powiększenia. Zakres per-origin jest dostępny tylko w trybie automatic.
„na kartę”
Zmiany powiększenia są wprowadzane tylko na tej karcie, a zmiany powiększenia na innych kartach nie wpływają na powiększenie tej karty. Poza tym per-tabzmiany powiększenia są resetowane podczas nawigacji. Przeglądanie karty zawsze powoduje wczytywanie stron z per-originczynnikami powiększenia.
Właściwości
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Maksymalna liczba wywołań funkcji captureVisibleTab na sekundę. captureVisibleTab jest kosztowna i nie należy jej wywoływać zbyt często.
Wartość
2
SPLIT_VIEW_ID_NONE
Identyfikator reprezentujący brak podzielonej karty.
Wartość
-1
TAB_ID_NONE
Identyfikator reprezentujący brak karty przeglądarki.
Wartość
-1
TAB_INDEX_NONE
Indeks reprezentujący brak indeksu karty w obszarze tab_strip.
Wartość
-1
Metody
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
): Promise<string>
Zapisuje widoczny obszar aktywnej karty w określonym oknie. Aby wywołać tę metodę, rozszerzenie musi mieć uprawnienie <all_urls> lub activeTab. Oprócz witryn, do których rozszerzenia mają zwykle dostęp, ta metoda umożliwia rozszerzeniom przechwytywanie witryn zawierających informacje poufne, które w inny sposób są niedostępne, w tym stron ze schematem chrome:, stron innych rozszerzeń i adresów URL data:. Te witryny zawierające informacje poufne można przechwytywać tylko za pomocą uprawnienia activeTab. Adresy URL plików mogą być przechwytywane tylko wtedy, gdy rozszerzenie ma dostęp do plików.
Parametry
-
windowId
number opcjonalny
Okno docelowe. Domyślnie jest to bieżące okno.
-
Opcje
ImageDetails opcjonalny
Zwroty
-
Promise<string>
Chrome 88 lub nowsza
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Nawiązuje połączenie ze skryptami treści na określonej karcie. Zdarzenie runtime.onConnect jest wywoływane w każdym skrypcie treści działającym w określonej karcie bieżącego rozszerzenia. Więcej informacji znajdziesz w sekcji Wysyłanie wiadomości do skryptu treści.
Parametry
-
tabId
liczba
-
connectInfo
obiekt opcjonalny
-
documentId
ciąg znaków opcjonalny
Chrome 106 lub nowszaOtwiera port dla konkretnego dokumentu zidentyfikowanego przez
documentId, a nie dla wszystkich ramek na karcie. -
frameId
number opcjonalny
Otwórz port dla konkretnej ramki oznaczonej symbolem
frameId, a nie dla wszystkich ramek na karcie. -
nazwa
ciąg znaków opcjonalny
Jest przekazywany do funkcji onConnect w przypadku skryptów treści, które nasłuchują zdarzenia połączenia.
-
Zwroty
-
Port, który może być używany do komunikacji ze skryptami treści działającymi w określonej karcie. Zdarzenie
runtime.Portportu jest wywoływane, jeśli karta zostanie zamknięta lub nie istnieje.
Parametry
-
createProperties
obiekt
-
aktywna
wartość logiczna opcjonalna
Informacja o tym, czy karta ma stać się aktywną kartą w oknie. Nie ma wpływu na to, czy okno jest aktywne (patrz
windows.update). Domyślnie ustawiona jest wartośćtrue. -
indeks
number opcjonalny
Pozycja, jaką karta powinna zajmować w oknie. Podana wartość jest ograniczona do zakresu od zera do liczby kart w oknie.
-
openerTabId
number opcjonalny
Identyfikator karty, która otworzyła tę kartę. Jeśli określono wartość, karta otwierająca musi znajdować się w tym samym oknie co nowo utworzona karta.
-
przypięty
wartość logiczna opcjonalna
Określa, czy karta ma być przypięta. Domyślna wartość to
false. -
wybrano
wartość logiczna opcjonalna
WycofanoUżyj wartości active.
Określa, czy karta ma stać się wybraną kartą w oknie. Domyślna wartość to
true. -
splitWithTabId
number opcjonalny
Chrome 155 lub nowszyIdentyfikator istniejącej karty, z którą ma zostać utworzony widok dzielony. Jeśli określono kartę podziału, musi ona spełniać te warunki:
- Nie może to być karta, która została już podzielona.
- Musi znajdować się w tym samym oknie co nowo utworzona karta.
- Jeśli podasz wartość
windowId, musi być ona taka sama jak identyfikator okna karty z podziałem. - Jeśli podano wartość
index, musi to być indeks sąsiadujący z kartą, z której nastąpiło rozdzielenie, i wpłynie na względne położenie nowo utworzonej karty.
-
URL
ciąg znaków opcjonalny
Adres URL, do którego ma przejść karta. Pełne i jednoznaczne adresy URL muszą zawierać schemat (np. „http://www.google.com”, a nie „www.google.com”). Adresy URL względne są względne względem bieżącej strony w rozszerzeniu. Domyślnie jest to strona Nowa karta.
-
windowId
number opcjonalny
Okno, w którym ma zostać utworzona nowa karta. Domyślnie jest to bieżące okno.
-
Zwroty
-
Promise<Tab>
Chrome 88 lub nowsza
createSplit()
chrome.tabs.createSplit(
tabIds: [number, number],
): Promise<number>
Dzieli 2 istniejące karty na widok dzielony.
Parametry
-
tabIds
[number, number]
Tablica zawierająca dokładnie 2 identyfikatory kart, które mają być połączone w widoku dzielonym. Wszystkie karty muszą spełniać te warunki:
Muszą być sąsiadujące. Nie mogą być już w widoku podzielonym. Muszą mieć pasujące stany
windowId,pinnedigroupId.
Zwroty
-
Promise<number>
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
): Promise<string>
Wykrywa główny język treści na karcie.
Parametry
-
tabId
number opcjonalny
Domyślnie jest to aktywna karta bieżącego okna.
Zwroty
-
Promise<string>
Chrome 88 lub nowsza
discard()
chrome.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
Zwalnia kartę z pamięci. Odrzucone karty są nadal widoczne na pasku kart i są ponownie wczytywane po aktywowaniu.
Parametry
-
tabId
number opcjonalny
Identyfikator karty, która ma zostać odrzucona. Jeśli jest określona, karta jest odrzucana, chyba że jest aktywna lub została już odrzucona. Jeśli ten parametr zostanie pominięty, przeglądarka odrzuci najmniej ważną kartę. Może się to nie udać, jeśli nie ma kart, które można odrzucić.
Zwroty
-
Promise<Tab | undefined>
Chrome 88 lub nowszaZwraca wartość po zakończeniu operacji.
Parametry
-
tabId
liczba
Identyfikator karty do zduplikowania.
Zwroty
-
Promise<Tab | undefined>
Chrome 88 lub nowsza
Parametry
-
tabId
liczba
Zwroty
-
Promise<Tab>
Chrome 88 lub nowsza
getCurrent()
chrome.tabs.getCurrent(): Promise<Tab | undefined>
Pobiera kartę, z której wywoływany jest ten skrypt. Zwraca wartość undefined, jeśli wywołano ją w kontekście innym niż karta (np. na stronie w tle lub w widoku wyskakującym).
Zwroty
-
Promise<Tab | undefined>
Chrome 88 lub nowsza
getZoom()
chrome.tabs.getZoom(
tabId?: number,
): Promise<number>
Pobiera bieżący współczynnik powiększenia określonej karty.
Parametry
-
tabId
number opcjonalny
Identyfikator karty, z której ma zostać pobrany bieżący współczynnik powiększenia. Domyślnie jest to aktywna karta bieżącego okna.
Zwroty
-
Promise<number>
Chrome 88 lub nowszaZwraca bieżący współczynnik powiększenia karty po jego pobraniu.
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
Pobiera bieżące ustawienia powiększenia określonej karty.
Parametry
-
tabId
number opcjonalny
Identyfikator karty, z której mają zostać pobrane bieżące ustawienia powiększenia. Domyślnie jest to aktywna karta bieżącego okna.
Zwroty
-
Promise<ZoomSettings>
Chrome 88 lub nowszaZwraca bieżące ustawienia powiększenia karty.
goBack()
chrome.tabs.goBack(
tabId?: number,
): Promise<void>
Wróć do poprzedniej strony, jeśli jest dostępna.
Parametry
-
tabId
number opcjonalny
Identyfikator karty, do której chcesz wrócić. Domyślnie jest to wybrana karta bieżącego okna.
Zwroty
-
Promise<void>
Chrome 88 lub nowsza
goForward()
chrome.tabs.goForward(
tabId?: number,
): Promise<void>
Przejdź do następnej strony, jeśli jest dostępna.
Parametry
-
tabId
number opcjonalny
Identyfikator karty, do której chcesz przejść; domyślnie jest to wybrana karta bieżącego okna.
Zwroty
-
Promise<void>
Chrome 88 lub nowsza
group()
chrome.tabs.group(
options: object,
): Promise<number>
Dodaje co najmniej 1 kartę do określonej grupy lub, jeśli nie podano grupy, dodaje podane karty do nowo utworzonej grupy.
Parametry
-
Opcje
obiekt
-
createProperties
obiekt opcjonalny
Konfiguracje tworzenia grupy. Nie można używać, jeśli identyfikator grupy jest już określony.
-
windowId
number opcjonalny
Okno nowej grupy. Domyślnie jest to bieżące okno.
-
-
groupId
number opcjonalny
Identyfikator grupy, do której chcesz dodać karty. Jeśli nie zostanie podana, zostanie utworzona nowa grupa.
-
tabIds
number | [number, ...number[]]
Identyfikator karty lub lista identyfikatorów kart do dodania do określonej grupy.
-
Zwroty
-
Promise<number>
highlight()
chrome.tabs.highlight(
highlightInfo: object,
): Promise<windows.Window>
Wyróżnia podane karty i skupia się na pierwszej z nich. Jeśli określona karta jest obecnie aktywna, nie będzie to miało żadnego wpływu.
Parametry
-
highlightInfo
obiekt
-
karty,
number | number[]
Co najmniej jeden indeks karty do wyróżnienia.
-
windowId
number opcjonalny
Okno zawierające karty.
-
Zwroty
-
Promise<windows.Window>
Chrome 88 lub nowsza
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
): Promise<Tab | Tab[]>
Przenosi jedną lub więcej kart na nową pozycję w oknie lub do nowego okna. Pamiętaj, że karty można przenosić tylko do i z normalnych okien (window.type === „normal”).
Parametry
-
tabIds
number | number[]
Identyfikator karty lub lista identyfikatorów kart do przeniesienia.
-
moveProperties
obiekt
-
indeks
liczba
Pozycja, na którą chcesz przenieść okno. Użyj
-1, aby umieścić kartę na końcu okna. -
windowId
number opcjonalny
Domyślnie jest to okno, w którym znajduje się obecnie karta.
-
query()
chrome.tabs.query(
queryInfo: object,
): Promise<Tab[]>
Pobiera wszystkie karty, które mają określone właściwości, lub wszystkie karty, jeśli nie określono żadnych właściwości.
Parametry
-
queryInfo
obiekt
-
aktywna
wartość logiczna opcjonalna
Informacja o tym, czy karty są aktywne w swoich oknach.
-
audible
wartość logiczna opcjonalna
Chrome 45 lub nowszyCzy karty są słyszalne.
-
autoDiscardable
wartość logiczna opcjonalna
Chrome 54 lub nowszaOkreśla, czy karty mogą być automatycznie zamykane przez przeglądarkę, gdy zasoby są ograniczone.
-
currentWindow
wartość logiczna opcjonalna
Czy karty znajdują się w bieżącym oknie.
-
odrzucono
wartość logiczna opcjonalna
Chrome 54 lub nowszaCzy karty są zamykane. Odrzucona karta to karta, której zawartość została usunięta z pamięci, ale nadal jest widoczna na pasku kart. Jego zawartość zostanie ponownie wczytana przy następnej aktywacji.
-
zawieszony
wartość logiczna opcjonalna
Chrome 132 lub nowszaCzy karty są zablokowane. Zablokowana karta nie może wykonywać zadań, w tym modułów obsługi zdarzeń ani liczników czasu. Jest widoczna na pasku kart, a jej zawartość jest wczytywana do pamięci. Po aktywacji zostanie odblokowane.
-
groupId
number opcjonalny
Chrome 88 lub nowszaIdentyfikator grupy, w której znajdują się karty, lub
tabGroups.TAB_GROUP_ID_NONEw przypadku kart niedodanych do grupy. -
wyróżniona
wartość logiczna opcjonalna
Określa, czy karty są wyróżnione.
-
indeks
number opcjonalny
Położenie kart w oknach.
-
lastFocusedWindow
wartość logiczna opcjonalna
Czy karty znajdują się w ostatnim aktywnym oknie.
-
Wyciszono
wartość logiczna opcjonalna
Chrome 45 lub nowszyCzy karty są wyciszone.
-
przypięty
wartość logiczna opcjonalna
Czy karty są przypięte.
-
splitViewId
number opcjonalny
Chrome 140+Identyfikator widoku dzielonego, w którym znajdują się karty, lub
tabs.SPLIT_VIEW_ID_NONEw przypadku kart, które nie znajdują się w widoku dzielonym. -
status
TabStatus opcjonalny
Stan wczytywania karty.
-
tytuł
ciąg znaków opcjonalny
Dopasowywanie tytułów stron do wzorca. Ta właściwość jest ignorowana, jeśli rozszerzenie nie ma uprawnienia
"tabs"lub uprawnień hosta do strony. -
URL
string | string[] opcjonalnie
Dopasowywanie kart do co najmniej 1 wzorca adresu URL. Identyfikatory fragmentów nie są dopasowywane. Ta właściwość jest ignorowana, jeśli rozszerzenie nie ma uprawnienia
"tabs"lub uprawnień hosta do strony. -
windowId
number opcjonalny
Identyfikator okna nadrzędnego lub
windows.WINDOW_ID_CURRENTw przypadku bieżącego okna. -
windowType
WindowType opcjonalny
Typ okna, w którym znajdują się karty.
-
Zwroty
-
Promise<Tab[]>
Chrome 88 lub nowsza
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise<void>
Odśwież kartę.
Parametry
-
tabId
number opcjonalny
Identyfikator karty do ponownego wczytania. Domyślnie jest to wybrana karta bieżącego okna.
-
reloadProperties
obiekt opcjonalny
-
bypassCache
wartość logiczna opcjonalna
Określa, czy pominąć lokalne buforowanie. Domyślna wartość to
false.
-
Zwroty
-
Promise<void>
Chrome 88 lub nowsza
remove()
chrome.tabs.remove(
tabIds: number | number[],
): Promise<void>
Zamyka co najmniej 1 kartę.
Parametry
-
tabIds
number | number[]
Identyfikator karty lub lista identyfikatorów kart do zamknięcia.
Zwroty
-
Promise<void>
Chrome 88 lub nowsza
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): Promise<any>
Wysyła pojedynczą wiadomość do skryptów treści w określonej karcie. Zdarzenie runtime.onMessage jest wywoływane w każdym skrypcie treści działającym w określonej karcie bieżącego rozszerzenia.
Parametry
-
tabId
liczba
-
wiadomość
każdy
Wiadomość do wysłania. Ta wiadomość powinna być obiektem, który można przekształcić w JSON.
-
Opcje
obiekt opcjonalny
-
documentId
ciąg znaków opcjonalny
Chrome 106 lub nowszaWysyłanie wiadomości do konkretnego dokumentu zidentyfikowanego przez
documentIdzamiast do wszystkich ramek na karcie. -
frameId
number opcjonalny
Wysyłanie wiadomości do konkretnej ramki zidentyfikowanej przez
frameIdzamiast do wszystkich ramek na karcie.
-
Zwroty
-
Promise<any>
Chrome 99 lub nowszaObietnica, która jest spełniana z odpowiedzią ze skryptu treści. Jeśli podczas łączenia z określoną kartą wystąpi błąd, obietnica zostanie odrzucona.
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise<void>
Powiększa określoną kartę.
Parametry
-
tabId
number opcjonalny
Identyfikator karty, którą chcesz powiększyć. Domyślnie jest to aktywna karta bieżącego okna.
-
zoomFactor
liczba
Nowy współczynnik powiększenia. Wartość
0ustawia kartę na bieżący domyślny współczynnik powiększenia. Wartości większe niż0określają (prawdopodobnie niestandardowy) współczynnik powiększenia karty.
Zwroty
-
Promise<void>
Chrome 88 lub nowszaRozwiązuje się po zmianie współczynnika powiększenia.
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise<void>
Ustawia ustawienia powiększenia dla określonej karty, które określają sposób obsługi zmian powiększenia. Te ustawienia są resetowane do wartości domyślnych po przejściu na kartę.
Parametry
-
tabId
number opcjonalny
Identyfikator karty, dla której chcesz zmienić ustawienia powiększenia. Domyślnie jest to aktywna karta bieżącego okna.
-
zoomSettings
Określa sposób obsługi zmian powiększenia i zakres, w jakim są one stosowane.
Zwroty
-
Promise<void>
Chrome 88 lub nowszaProblem znika po zmianie ustawień powiększenia.
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise<void>
Usuwa co najmniej 1 kartę z odpowiednich grup. Jeśli jakieś grupy staną się puste, zostaną usunięte.
Parametry
-
tabIds
liczba | [liczba, ...liczba[]]
Identyfikator karty lub lista identyfikatorów kart do usunięcia z odpowiednich grup.
Zwroty
-
Promise<void>
unsplit()
chrome.tabs.unsplit(
splitViewId: number,
): Promise<void>
Rozdziela karty w widoku dzielonym na osobne karty.
Parametry
-
splitViewId
liczba
Identyfikator widoku dzielonego do rozdzielenia.
Zwroty
-
Promise<void>
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
Modyfikuje właściwości karty. Właściwości, które nie są określone w updateProperties, nie są modyfikowane.
Parametry
-
tabId
number opcjonalny
Domyślnie jest to wybrana karta bieżącego okna.
-
updateProperties
obiekt
-
aktywna
wartość logiczna opcjonalna
Określa, czy karta ma być aktywna. Nie ma wpływu na to, czy okno jest aktywne (patrz
windows.update). -
autoDiscardable
wartość logiczna opcjonalna
Chrome 54 lub nowszaOkreśla, czy karta powinna być automatycznie odrzucana przez przeglądarkę, gdy zasoby są ograniczone.
-
wyróżniona
wartość logiczna opcjonalna
Dodaje lub usuwa kartę z bieżącego wyboru.
-
Wyciszono
wartość logiczna opcjonalna
Chrome 45 lub nowszyOkreśla, czy karta ma być wyciszona.
-
openerTabId
number opcjonalny
Identyfikator karty, która otworzyła tę kartę. Jeśli została określona, karta otwierająca musi znajdować się w tym samym oknie co ta karta.
-
przypięty
wartość logiczna opcjonalna
Określa, czy karta ma być przypięta.
-
wybrano
wartość logiczna opcjonalna
WycofanoUżyj wyróżnionego.
Określa, czy karta ma być wybrana.
-
URL
ciąg znaków opcjonalny
Adres URL, do którego ma przejść karta. Adresy URL JavaScriptu nie są obsługiwane. Zamiast nich używaj
scripting.executeScript.
-
Zwroty
-
Promise<Tab | undefined>
Chrome 88 lub nowsza
Wydarzenia
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
Wywoływane, gdy zmieni się aktywna karta w oknie. Pamiętaj, że adres URL karty może nie być ustawiony w momencie wywołania tego zdarzenia, ale możesz nasłuchiwać zdarzeń onUpdated, aby otrzymywać powiadomienia o ustawieniu adresu URL.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(activeInfo: object) => void
-
activeInfo
obiekt
-
tabId
liczba
Identyfikator karty, która stała się aktywna.
-
windowId
liczba
Identyfikator okna, w którym zmieniono aktywną kartę.
-
-
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Wywoływane, gdy karta jest dołączana do okna, np. po przeniesieniu jej między oknami.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(tabId: number, attachInfo: object) => void
-
tabId
liczba
-
attachInfo
obiekt
-
newPosition
liczba
-
newWindowId
liczba
-
-
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Wywoływane, gdy tworzona jest karta. Pamiętaj, że adres URL karty i przynależność do grupy kart mogą nie być ustawione w momencie wywołania tego zdarzenia, ale możesz nasłuchiwać zdarzeń onUpdated, aby otrzymywać powiadomienia o ustawieniu adresu URL lub dodaniu karty do grupy kart.
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
Wywoływane, gdy karta zostanie odłączona od okna, np. z powodu przeniesienia jej między oknami.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(tabId: number, detachInfo: object) => void
-
tabId
liczba
-
detachInfo
obiekt
-
oldPosition
liczba
-
oldWindowId
liczba
-
-
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Wywoływane, gdy zmienią się wyróżnione lub wybrane karty w oknie.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(highlightInfo: object) => void
-
highlightInfo
obiekt
-
tabIds
number[]
Wszystkie wyróżnione karty w oknie.
-
windowId
liczba
Okno, którego karty uległy zmianie.
-
-
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
Uruchamiane, gdy karta zostanie przeniesiona w oknie. Wywoływane jest tylko jedno zdarzenie przeniesienia, które reprezentuje kartę bezpośrednio przeniesioną przez użytkownika. Zdarzenia przeniesienia nie są wywoływane w przypadku innych kart, które muszą zostać przeniesione w odpowiedzi na ręcznie przeniesioną kartę. To zdarzenie nie jest wywoływane, gdy karta jest przenoszona między oknami. Więcej informacji znajdziesz w tabs.onDetached.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(tabId: number, moveInfo: object) => void
-
tabId
liczba
-
moveInfo
obiekt
-
fromIndex
liczba
-
toIndex
liczba
-
windowId
liczba
-
-
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Uruchamiane po zamknięciu karty.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(tabId: number, removeInfo: object) => void
-
tabId
liczba
-
removeInfo
obiekt
-
isWindowClosing
wartość logiczna
Wartość „prawda”, jeśli karta została zamknięta, ponieważ zamknięto okno nadrzędne.
-
windowId
liczba
okno, którego karta została zamknięta;
-
-
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Wywoływane, gdy karta zostanie zastąpiona inną kartą z powodu renderowania wstępnego lub wyszukiwania dynamicznego.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(addedTabId: number, removedTabId: number) => void
-
addedTabId
liczba
-
removedTabId
liczba
-
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Wywoływane, gdy karta zostanie zaktualizowana.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
liczba
-
changeInfo
obiekt
-
audible
wartość logiczna opcjonalna
Chrome 45 lub nowszyNowy stan dźwięku karty.
-
autoDiscardable
wartość logiczna opcjonalna
Chrome 54 lub nowszaNowy stan karty, który można automatycznie odrzucić.
-
odrzucono
wartość logiczna opcjonalna
Chrome 54 lub nowszaNowy stan karty po odrzuceniu.
-
favIconUrl
ciąg znaków opcjonalny
Nowy adres URL favikony karty.
-
zawieszony
wartość logiczna opcjonalna
Chrome 132 lub nowszaNowy stan zamrożenia karty.
-
groupId
number opcjonalny
Chrome 88 lub nowszaNowa grupa karty.
-
mutedInfo
MutedInfo opcjonalny
Chrome 46 lub nowszaNowy stan wyciszenia karty i powód zmiany.
-
przypięty
wartość logiczna opcjonalna
Nowy stan przypięcia karty.
-
splitViewId
number opcjonalny
Chrome 140+Nowy widok dzielony karty.
-
status
TabStatus opcjonalny
Stan wczytywania karty.
-
tytuł
ciąg znaków opcjonalny
Chrome 48 lub nowszaNowy tytuł karty.
-
URL
ciąg znaków opcjonalny
Adres URL karty, jeśli uległ zmianie.
-
-
karta
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Uruchamiane po powiększeniu karty.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
obiekt
-
newZoomFactor
liczba
-
oldZoomFactor
liczba
-
tabId
liczba
-
zoomSettings
-
-