chrome.tabs (original) (raw)
Manifest V3
chrome.tabs
Opis
Używaj interfejsu chrome.tabs API do interakcji z systemem kart przeglądarki. Za pomocą tego interfejsu API możesz tworzyć, modyfikować i przenosić karty w przeglądarce.
Interfejs Tabs API oferuje nie tylko funkcje manipulowania kartami i zarządzania nimi, ale też wykrywa język karty, robi zrzut ekranu i komunikuje 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 korzystania z interfejsu Tabs API deweloperzy powinni pamiętać o 3 uprawnieniach.
Uprawnienie „karty”
To uprawnienie nie daje dostępu do przestrzeni nazw chrome.tabs. Zamiast tego umożliwia rozszerzeniu wywoływanie funkcji tabs.query() w przypadku 4 właściwości wrażliwych w instancjach tabs.Tab: url, pendingUrl, title i favIconUrl.
{
"name": "My extension",
...
"permissions": [
"tabs"
],
...
}
Uprawnienia hosta
Uprawnienia hosta umożliwiają rozszerzeniu odczytywanie i wykonywanie zapytań dotyczących 4 właściwości karty, które są wrażliwe:tabs.Tab Mogą też wchodzić w bezpośrednią interakcję z pasującymi kartami za pomocą metod takich jak tabs.captureVisibleTab(), scripting.executeScript(), scripting.insertCSS() i scripting.removeCSS().
{
"name": "My extension",
...
"host_permissions": [
"http://*/*",
"https://*/*"
],
...
}
Uprawnienie „activeTab”
activeTab przyznaje rozszerzeniu tymczasowe uprawnienia hosta do bieżącej karty w odpowiedzi na wywołanie przez użytkownika. W przeciwieństwie do uprawnień hosta activeTab nie powoduje wyświetlania żadnych ostrzeżeń.
{
"name": "My extension",
...
"permissions": [
"activeTab"
],
...
}
Przypadki użycia
W kolejnych sekcjach przedstawiamy 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:
chrome.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
chrome.tabs.create({
url: "onboarding.html"
});
}
});
Pobieranie bieżącej karty
Ten przykład pokazuje, jak proces roboczy usługi rozszerzenia może pobrać aktywną kartę z aktualnie aktywnego okna (lub ostatnio aktywnego okna, jeśli żadne okno Chrome nie jest aktywne). Można to 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 chrome.tabs.query(queryOptions);
return tab;
}
function getCurrentTab(callback) {
let queryOptions = { active: true, lastFocusedWindow: true };
chrome.tabs.query(queryOptions, ([tab]) => {
if (chrome.runtime.lastError)
console.error(chrome.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 chrome.tabs.get(tabId);
const muted = !tab.mutedInfo.muted;
await chrome.tabs.update(tabId, {muted});
console.log(`Tab <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mrow><mi>t</mi><mi>a</mi><mi>b</mi><mi mathvariant="normal">.</mi><mi>i</mi><mi>d</mi></mrow><mi>i</mi><mi>s</mi></mrow><annotation encoding="application/x-tex">{tab.id} is </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord"><span class="mord mathnormal">t</span><span class="mord mathnormal">ab</span><span class="mord">.</span><span class="mord mathnormal">i</span><span class="mord mathnormal">d</span></span><span class="mord mathnormal">i</span><span class="mord mathnormal">s</span></span></span></span>{muted ? "muted" : "unmuted"}`);
}
function toggleMuteState(tabId) {
chrome.tabs.get(tabId, async (tab) => {
let muted = !tab.mutedInfo.muted;
await chrome.tabs.update(tabId, { muted });
console.log(`Tab <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mrow><mi>t</mi><mi>a</mi><mi>b</mi><mi mathvariant="normal">.</mi><mi>i</mi><mi>d</mi></mrow><mi>i</mi><mi>s</mi></mrow><annotation encoding="application/x-tex">{tab.id} is </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord"><span class="mord mathnormal">t</span><span class="mord mathnormal">ab</span><span class="mord">.</span><span class="mord mathnormal">i</span><span class="mord mathnormal">d</span></span><span class="mord mathnormal">i</span><span class="mord mathnormal">s</span></span></span></span>{ 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 chrome.tabs.move, ale możesz zastosować ten sam wzorzec oczekiwania w przypadku innych wywołań, które modyfikują karty podczas przeciągania.
chrome.tabs.onActivated.addListener(moveToFirstPosition);
async function moveToFirstPosition(activeInfo) {
try {
await chrome.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);
}
}
}
chrome.tabs.onActivated.addListener(moveToFirstPositionMV2);
function moveToFirstPositionMV2(activeInfo) {
chrome.tabs.move(activeInfo.tabId, { index: 0 }, () => {
if (chrome.runtime.lastError) {
const error = chrome.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 proces roboczy usługi rozszerzenia może komunikować się ze skryptami treści w określonych kartach przeglądarki za pomocą interfejsu tabs.sendMessage().
function sendMessageToActiveTab(message) {
const [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true });
const response = await chrome.tabs.sendMessage(tab.id, message);
// TODO: Do something with the response.
}
Przykłady rozszerzeń
Więcej demonstracji rozszerzeń interfejsu Tabs API znajdziesz w tych materiałach:
Typy
MutedInfo
Stan wyciszenia karty i przyczyna ostatniej zmiany stanu.
Właściwości
- extensionId
string opcjonalny
Identyfikator rozszerzenia, które zmieniło stan wyciszenia. Nie jest ustawiona, jeśli rozszerzenie nie było przyczyną ostatniej zmiany stanu wyciszenia. - Wyciszono
Wartość logiczna
Określa, 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 w tej chwili. Odpowiada temu, czy wyświetlany jest wskaźnik wyciszenia dźwięku. - powód,
MutedInfoReason opcjonalnie
Przyczyna 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”
Użytkownik ustawił 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
- jest aktywny
Wartość logiczna
Określa, czy karta jest aktywna w swoim oknie. Nie musi to oznaczać, że okno jest aktywne. - audible
wartość logiczna opcjonalna
Czy karta emitowała dźwięk w ciągu ostatnich kilku sekund (może on być niesłyszalny, jeśli karta jest wyciszona). Odpowiada temu, czy wyświetla się wskaźnik „dźwięk z głośnika”. - autoDiscardable
Wartość logiczna
Określa, czy karta może zostać automatycznie zamknięta przez przeglądarkę, gdy zasoby są ograniczone. - odrzucono
Wartość logiczna
Określa, czy karta została zamknięta. Odrzucona karta to taka, 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
string opcjonalny
Adres URL favikony karty. Ta właściwość jest obecna tylko wtedy, gdy rozszerzenie ma uprawnienie"tabs"lub uprawnienia hosta do strony. Jeśli karta się wczytuje, może to być też pusty ciąg znaków. - zamrożone,
Wartość logiczna
Czy karta jest zablokowana. Zablokowana karta nie może wykonywać zadań, w tym modułów obsługi zdarzeń ani timerów. Jest widoczna na pasku kart, a jej zawartość jest wczytywana do pamięci. Po aktywacji zostanie odblokowany. - Identyfikator grupy, do której należy karta.
- wysokość
number opcjonalny
Wysokość karty w pikselach. - wyróżniona
Wartość logiczna
Określa, czy karta jest wyróżniona. - 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 sessions API. W takim przypadku może być obecny identyfikator sesji. W przypadku aplikacji i okien narzędzi deweloperskich identyfikator karty można też ustawić na
chrome.tabs.TAB_ID_NONE. - incognito
Wartość logiczna
Określa, czy karta znajduje się w oknie incognito. - Indeks karty w oknie liczony od zera.
- Ostatni moment, w którym karta stała się aktywna w swoim oknie, w milisekundach od początku epoki.
- mutedInfo
MutedInfo opcjonalnie
Stan 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
string opcjonalny
Adres 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
Określa, czy karta jest przypięta. - Użyj tabs.Tab.highlighted.
Określa, czy karta jest wybrana. - sessionId
string opcjonalny
Identyfikator sesji używany do jednoznacznej identyfikacji karty uzyskanej z interfejsu sessions API. - status
TabStatus opcjonalnie
Stan wczytywania karty. - Tytuł karty. Ta właściwość jest obecna tylko wtedy, gdy rozszerzenie ma uprawnienie
"tabs"lub uprawnienia hosta do strony. - 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. - Identyfikator okna zawierającego kartę.
TabStatus
Stan wczytywania karty.
Typ wyliczeniowy
„unloaded”
„loading”
„complete”
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
Używana 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 toautomatic. - 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. W trybieautomaticdomyślnie jest toper-origin, a w innych trybach –per-tab.
ZoomSettingsMode
Określa sposób obsługi zmian powiększenia, czyli podmiot odpowiedzialny za rzeczywiste skalowanie strony. Domyślnie jest to automatic.
Typ wyliczeniowy
„automatyczne”
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 powiększania per-origin, 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. W trybie automatic domyślnie jest to per-origin, a w innych trybach – per-tab.
Typ wyliczeniowy
„per-origin”
Zmiany powiększenia są zachowywane w źródle powiększonej strony, tzn. wszystkie inne karty, na których otwarte jest to samo źródło, są również powiększone. Ponadto per-origin zmiany powiększenia są zapisywane w domenie, co oznacza, że podczas przechodzenia do innych stron w tej samej domenie wszystkie są powiększane do tego samego współczynnika 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; nawigacja po karcie zawsze wczytuje strony z per-originwartościami 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.
TAB_ID_NONE
Identyfikator reprezentujący brak karty przeglądarki.
TAB_INDEX_NONE
Indeks reprezentujący brak indeksu karty w obszarze tab_strip.
Metody
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
): Promise
Rejestruje widoczny obszar obecnie aktywnej karty w określonym oknie. Aby wywołać tę metodę, rozszerzenie musi mieć uprawnienie <all_urls> lub activeTab. Oprócz stron, do których rozszerzenia mają zwykle dostęp, ta metoda umożliwia rozszerzeniom przechwytywanie wrażliwych stron, które są w inny sposób ograniczone, w tym stron ze schematem chrome:, stron innych rozszerzeń i adresów URL data:. Te wrażliwe strony można przechwytywać tylko za pomocą uprawnienia activeTab. Adresy URL plików można przechwytywać tylko wtedy, gdy rozszerzenie ma dostęp do plików.
Parametry
- windowId
number opcjonalny
Okno docelowe. Domyślnie jest to bieżące okno.
Zwroty
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Łączy się 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 artykule Wysyłanie wiadomości do skryptu treści.
Parametry
- connectInfo
obiekt opcjonalny- documentId
string opcjonalny
Otwiera port dla konkretnego dokumentu zidentyfikowanego przezdocumentIdzamiast wszystkich ramek na karcie. - frameId
number opcjonalny
Otwórz port dla konkretnej ramki zidentyfikowanej przezframeIdzamiast wszystkich ramek na karcie. - Jest przekazywany do funkcji onConnect w przypadku skryptów treści, które nasłuchują zdarzenia połączenia.
- documentId
Zwroty
- Port, który może być używany do komunikacji ze skryptami treści działającymi w określonej karcie. Zdarzenie runtime.Port portu jest uruchamiane, jeśli karta zostanie zamknięta lub nie istnieje.
create()
chrome.tabs.create(
createProperties: object,
): Promise<Tab>
Tworzy nową kartę.
Parametry
- jest aktywny
wartość logiczna opcjonalna
Określa, czy karta ma stać się aktywną kartą w oknie. Nie ma wpływu na to, czy okno jest aktywne (patrz windows.update). Domyślnie ma wartośćtrue. - 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 kartę otwierającą, musi ona 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ść tofalse. - wybrano
wartość logiczna opcjonalna
Użyj wartości active.
Określa, czy karta ma stać się wybraną kartą w oknie. Domyślna wartość totrue. - Adres URL, do którego ma przejść karta. Pełne adresy URL muszą zawierać schemat (np. „http://www.google.com”, a nie „www.google.com”). Względne adresy URL są względne w stosunku do 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.
- jest aktywny
Zwroty
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
): Promise
wykrywa główny język treści na karcie;
Zwroty
discard()
chrome.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
Zwalnia pamięć zajmowaną przez kartę. Odrzucone karty są nadal widoczne na pasku kart i są ponownie wczytywane po aktywowaniu.
Parametry
- Identyfikator karty, która ma zostać odrzucona. Jeśli jest określona, karta jest odrzucana, chyba że jest aktywna lub 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
duplicate()
chrome.tabs.duplicate(
tabId: number,
): Promise<Tab | undefined>
Duplikuje kartę.
Parametry
- Identyfikator karty do zduplikowania.
Zwroty
get()
chrome.tabs.get(
tabId: number,
): Promise<Tab>
Pobiera szczegóły określonej karty.
Parametry
Zwroty
getCurrent()
chrome.tabs.getCurrent(): Promise<Tab | undefined>
Pobiera kartę, z której wywoływany jest ten skrypt. Zwraca undefined, jeśli jest wywoływana w kontekście innym niż karta (np. na stronie w tle lub w widoku wyskakującym).
Zwroty
getZoom()
chrome.tabs.getZoom(
tabId?: number,
): Promise
Pobiera bieżący współczynnik powiększenia określonej karty.
Parametry
- Identyfikator karty, z której ma zostać pobrany bieżący współczynnik powiększenia. Domyślnie jest to aktywna karta bieżącego okna.
Zwroty
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
Pobiera bieżące ustawienia powiększenia określonej karty.
Parametry
- Identyfikator karty, z której mają zostać pobrane bieżące ustawienia powiększenia. Domyślnie jest to aktywna karta bieżącego okna.
Zwroty
goBack()
Chrome w wersji 72 lub nowszej
chrome.tabs.goBack(
tabId?: number,
): Promise
Wróć na poprzednią stronę, jeśli jest dostępna.
Parametry
- Identyfikator karty, do której chcesz wrócić. Domyślnie jest to wybrana karta bieżącego okna.
Zwroty
goForward()
Chrome w wersji 72 lub nowszej
chrome.tabs.goForward(
tabId?: number,
): Promise
Przechodzi do następnej strony, jeśli jest dostępna.
Parametry
- Identyfikator karty, do której chcesz przejść; domyślnie jest to wybrana karta bieżącego okna.
Zwroty
group()
chrome.tabs.group(
options: object,
): Promise
Dodaje jedną lub więcej kart do określonej grupy. Jeśli grupa nie jest określona, dodaje podane karty do nowo utworzonej grupy.
Parametry
- 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, utworzymy nową grupę. - tabIds
liczba | [liczba, ...liczba[]]
Identyfikator karty lub lista identyfikatorów kart do dodania do określonej grupy.
- createProperties
Zwroty
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
- Co najmniej jeden indeks karty do wyróżnienia.
- windowId
number opcjonalny
Okno zawierające karty.
Zwroty
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
): Promise<Tab | Tab[]>
Przenosi jedną lub więcej kart w nowe miejsce w oknie lub do nowego okna. Pamiętaj, że karty można przenosić tylko do i z normalnych okien (window.type === "normal").
Parametry
- Identyfikator karty lub lista identyfikatorów kart do przeniesienia.
- Pozycja, do której ma zostać przeniesione 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ę karta.
- Pozycja, do której ma zostać przeniesione okno. Użyj
Zwroty
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
- jest aktywny
wartość logiczna opcjonalna
Informacja o tym, czy karty są aktywne w swoich oknach. - audible
wartość logiczna opcjonalna
Czy karty mają włączony dźwięk. - autoDiscardable
wartość logiczna opcjonalna
Okreś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
Określa, czy karty mają być odrzucane. Odrzucona karta to taka, 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. - zamrożone,
wartość logiczna opcjonalna
Określa, czy karty są wstrzymane. Zablokowana karta nie może wykonywać zadań, w tym modułów obsługi zdarzeń ani timerów. Jest widoczna na pasku kart, a jej zawartość jest wczytywana do pamięci. Po aktywacji zostanie odblokowany. - groupId
number opcjonalny
Identyfikator grupy, w której znajdują się karty, lub tabGroups.TAB_GROUP_ID_NONE w przypadku kart rozgrupowanych. - wyróżniona
wartość logiczna opcjonalna
Określa, czy karty są wyróżnione. - położenie kart w oknach,
- lastFocusedWindow
wartość logiczna opcjonalna
Czy karty znajdują się w ostatnim aktywnym oknie. - Wyciszono
wartość logiczna opcjonalna
Określa, czy karty są wyciszone. - przypięty
wartość logiczna opcjonalna
Określa, czy karty są przypięte. - splitViewId
number opcjonalny
Identyfikator widoku dzielonego, w którym znajdują się karty, lubtabs.SPLIT_VIEW_ID_NONEw przypadku kart, które nie znajdują się w widoku dzielonym. - status
TabStatus opcjonalnie
Stan wczytywania karty. - dopasowywać tytuły stron do wzorca; Ta właściwość jest ignorowana, jeśli rozszerzenie nie ma uprawnienia
"tabs"lub uprawnień hosta do strony. - URL
string | string[] opcjonalny
Dopasowuj karty 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_CURRENT w przypadku bieżącego okna. - windowType
WindowType opcjonalny
Typ okna, w którym znajdują się karty.
- jest aktywny
Zwroty
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise
ponownie załadować kartę,
Parametry
- 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ść tofalse.
- bypassCache
Zwroty
remove()
chrome.tabs.remove(
tabIds: number | number[],
): Promise
Zamyka co najmniej 1 kartę.
Parametry
- Identyfikator karty lub lista identyfikatorów kart do zamknięcia.
Zwroty
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): Promise
Wysyła pojedynczą wiadomość do skryptów treści na określonej karcie z opcjonalnym wywołaniem zwrotnym, które ma zostać uruchomione po odesłaniu odpowiedzi. Zdarzenie runtime.onMessage jest wywoływane w każdym skrypcie treści działającym w określonej karcie bieżącego rozszerzenia.
Parametry
- Wiadomość do wysłania. Ta wiadomość powinna być obiektem, który można przekształcić w JSON.
Zwroty
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise
Powiększa określoną kartę.
Parametry
- Identyfikator karty, którą chcesz powiększyć. Domyślnie jest to aktywna karta bieżącego okna.
- 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
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise
Ustawia ustawienia powiększenia dla określonej karty, które określają sposób obsługi zmian powiększenia. Po przejściu na inną kartę te ustawienia zostaną przywrócone do wartości domyślnych.
Parametry
- Identyfikator karty, dla której chcesz zmienić ustawienia powiększenia. Domyślnie jest to aktywna karta bieżącego okna.
- Określa, jak i w jakim zakresie są obsługiwane zmiany powiększenia.
Zwroty
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise
Usuwa co najmniej jedną 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
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
Zmienia właściwości karty. Właściwości, które nie są określone w updateProperties, nie są modyfikowane.
Parametry
- Domyślnie jest to wybrana karta bieżącego okna.
- jest aktywny
wartość logiczna opcjonalna
Określa, czy karta ma być aktywna. Nie ma to wpływu na to, czy okno jest aktywne (patrz windows.update). - autoDiscardable
wartość logiczna opcjonalna
Określa, czy karta ma być automatycznie zamykana przez przeglądarkę, gdy zasoby są ograniczone. - wyróżniona
wartość logiczna opcjonalna
Dodaje lub usuwa kartę z bieżącego wyboru. - Wyciszono
wartość logiczna opcjonalna
Określa, czy karta ma być wyciszona. - openerTabId
number opcjonalny
Identyfikator karty, która otworzyła tę kartę. Jeśli jest 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
Użyj wyróżnionego.
Określa, czy karta ma być wybrana. - Adres URL, do którego ma prowadzić karta. Adresy URL JavaScriptu nie są obsługiwane. Zamiast nich użyj scripting.executeScript.
- jest aktywny
Zwroty
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
- Parametr
callbackwygląda tak:
(activeInfo: object) => void- Identyfikator karty, która stała się aktywna.
- Identyfikator okna, w którym zmieniono aktywną kartę.
- Identyfikator karty, która stała się aktywna.
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Wywoływane, gdy karta jest dołączana do okna, np. po przeniesieniu jej między oknami.
Parametry
- Parametr
callbackwygląda tak:
(tabId: number, attachInfo: object) => void
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Uruchamiane, gdy karta zostanie utworzona. Pamiętaj, że adres URL karty i członkostwo w grupie 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.
Parametry
- Parametr
callbackwygląda tak:
(tab: Tab) => void
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
- Parametr
callbackwygląda tak:
(tabId: number, detachInfo: object) => void
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Wysyłane, gdy zmienią się wyróżnione lub wybrane karty w oknie.
Parametry
- Parametr
callbackwygląda tak:
(highlightInfo: object) => void- Wszystkie wyróżnione karty w oknie.
- Okno, którego karty zostały zmienione.
- Wszystkie wyróżnione karty w oknie.
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
Wywoływane, 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
- Parametr
callbackwygląda tak:
(tabId: number, moveInfo: object) => void
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Uruchamiane po zamknięciu karty.
Parametry
- Parametr
callbackwygląda tak:
(tabId: number, removeInfo: object) => void- isWindowClosing
Wartość logiczna
Wartość „true”, jeśli karta została zamknięta, ponieważ zamknięto jej okno nadrzędne.- okno, którego karta została zamknięta;
- isWindowClosing
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Wywoływane, gdy karta zostanie zastąpiona inną kartą z powodu wstępnego renderowania lub natychmiastowego wczytywania.
Parametry
- Parametr
callbackwygląda tak:
(addedTabId: number, removedTabId: number) => void
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Uruchamiane, gdy karta zostanie zaktualizowana.
Parametry
- Parametr
callbackwygląda tak:
(tabId: number, changeInfo: object, tab: Tab) => void- audible
wartość logiczna opcjonalna
Nowy stan dźwięku karty.- autoDiscardable
wartość logiczna opcjonalna
Nowy stan karty, który można automatycznie odrzucić. - odrzucono
wartość logiczna opcjonalna
Nowy stan odrzucenia karty. - favIconUrl
string opcjonalny
Nowy adres URL ikony karty. - zamrożone,
wartość logiczna opcjonalna
Nowy stan zamrożenia karty. - groupId
number opcjonalny
Nowa grupa karty. - mutedInfo
MutedInfo opcjonalnie
Nowy stan wyciszenia karty i przyczyna zmiany. - przypięty
wartość logiczna opcjonalna
Nowy stan przypięcia karty. - splitViewId
number opcjonalny
Nowy widok dzielony karty. - status
TabStatus opcjonalnie
Stan wczytywania karty. - Nowy tytuł karty.
- Adres URL karty, jeśli uległ zmianie.
- autoDiscardable
- audible
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Uruchamiane, gdy karta zostanie powiększona.
Parametry
- Parametr
callbackwygląda tak:
(ZoomChangeInfo: object) => void
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-09-15 UTC.