Beschreibung
Verwenden Sie die chrome.tabs API, um mit dem Tab-System des Browsers zu interagieren. Mit dieser API können Sie Tabs im Browser erstellen, ändern und neu anordnen.
Die Tabs API bietet nicht nur Funktionen zum Bearbeiten und Verwalten von Tabs, sondern kann auch die Sprache des Tabs erkennen, einen Screenshot erstellen und mit den Inhaltsskripts eines Tabs kommunizieren.
Berechtigungen
Für die meisten Funktionen sind keine Berechtigungen erforderlich. Beispiele: Erstellen eines neuen Tabs, Aktualisieren eines Tabs, Aufrufen einer anderen URL usw.
Es gibt drei Berechtigungen, die Entwickler bei der Arbeit mit der Tabs API beachten sollten.
- Die Berechtigung „tabs“
Diese Berechtigung gewährt keinen Zugriff auf den Namespace
browser.tabs. Stattdessen wird einer Erweiterung die Möglichkeit gewährt,tabs.query()für vier sensible Attribute intabs.Tab-Instanzen aufzurufen:url,pendingUrl,titleundfavIconUrl.{ "name": "My extension", ... "permissions": [ "tabs" ], ... }- Berechtigungen für Organisatoren
Mithilfe von Hostberechtigungen kann eine Erweiterung die vier vertraulichen
tabs.Tab-Eigenschaften eines übereinstimmenden Tabs lesen und abfragen. Sie können auch direkt mit den übereinstimmenden Tabs interagieren, indem sie Methoden wietabs.captureVisibleTab(),scripting.executeScript(),scripting.insertCSS()undscripting.removeCSS()verwenden.{ "name": "My extension", ... "host_permissions": [ "http://*/*", "https://*/*" ], ... }- Die Berechtigung „activeTab“
activeTabgewährt einer Erweiterung als Reaktion auf einen Nutzeraufruf eine temporäre Hostberechtigung für den aktuellen Tab. Im Gegensatz zu Hostberechtigungen werden beiactiveTabkeine Warnungen ausgelöst.{ "name": "My extension", ... "permissions": [ "activeTab" ], ... }
Anwendungsfälle
In den folgenden Abschnitten werden einige gängige Anwendungsfälle beschrieben.
Seite einer Erweiterung in einem neuen Tab öffnen
Ein gängiges Muster für Erweiterungen ist, dass nach der Installation eine Onboarding-Seite in einem neuen Tab geöffnet wird. Das folgende Beispiel zeigt, wie das geht.
background.js:
browser.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
browser.tabs.create({
url: "onboarding.html"
});
}
});
Aktuellen Tab abrufen
In diesem Beispiel wird gezeigt, wie der Service Worker einer Erweiterung den aktiven Tab aus dem aktuell fokussierten Fenster (oder dem zuletzt fokussierten Fenster, wenn keine Chrome-Fenster fokussiert sind) abrufen kann. Dies ist in der Regel der aktuelle Tab des Nutzers.
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);
});
}
Den angegebenen Tab stummschalten
In diesem Beispiel wird gezeigt, wie eine Erweiterung den Stummschaltungsstatus für einen bestimmten Tab umschalten kann.
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" }`);
});
}
Aktuellen Tab beim Klicken an die erste Position verschieben
In diesem Beispiel wird gezeigt, wie ein Tab verschoben wird, während ein Ziehvorgang ausgeführt wird oder nicht. In diesem Beispiel wird browser.tabs.move verwendet. Sie können dasselbe Wartemuster aber auch für andere Aufrufe verwenden, die Tabs während eines Ziehvorgangs ändern.
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.");
}
});
}
Nachricht an das Inhaltsskript eines ausgewählten Tabs übergeben
In diesem Beispiel wird gezeigt, wie der Service Worker einer Erweiterung mithilfe von tabs.sendMessage() mit Inhaltsskripts in bestimmten Browsertabs kommunizieren kann.
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.
}
Beispiele für Erweiterungen
Weitere Demos zu Tabs API-Erweiterungen finden Sie hier:
Typen
MutedInfo
Der Stummschaltungsstatus des Tabs und der Grund für die letzte Statusänderung.
Attribute
-
extensionId
String optional
Die ID der Erweiterung, die den Stummschaltungsstatus geändert hat. Nicht festgelegt, wenn eine Erweiterung nicht der Grund für die letzte Änderung des Stummschaltungsstatus war.
-
stummgeschaltet
boolean
Gibt an, ob der Tab stummgeschaltet ist (kein Ton wiedergegeben wird). Der Tab kann auch dann stummgeschaltet werden, wenn er keinen Ton abgespielt hat oder gerade keinen Ton abspielt. Entspricht der Anzeige des Audioindikators „Stummgeschaltet“.
-
reason
MutedInfoReason optional
Der Grund, warum der Tab stummgeschaltet oder die Stummschaltung aufgehoben wurde. Nicht festgelegt, wenn der Stummschaltungsstatus des Tabs nie geändert wurde.
MutedInfoReason
Ein Ereignis, das eine Änderung des Stummschaltungsstatus verursacht hat.
Enum
"user"
Der Stummschaltungsstatus wurde durch eine Nutzereingabe festgelegt.
"capture"
Die Tab-Aufnahme wurde gestartet, wodurch eine Änderung des Stummschaltungsstatus erzwungen wurde.
"extension"
Eine Erweiterung, die durch das Feld „extensionId“ identifiziert wird, hat den Stummschaltungsstatus festgelegt.
Tab
Attribute
-
aktiv
boolean
Gibt an, ob der Tab im Fenster aktiv ist. Das bedeutet nicht zwangsläufig, dass das Fenster fokussiert ist.
-
audible
Boolesch optional
Chrome 45 und höher browser.* seit Chrome 148Ob der Tab in den letzten Sekunden Ton erzeugt hat (der aber möglicherweise nicht zu hören ist, wenn er auch stummgeschaltet ist). Entspricht der Anzeige „Lautsprecher-Audio“.
-
autoDiscardable
boolean
Chrome 54 oder höher browser.* seit Chrome 148Gibt an, ob der Tab vom Browser automatisch verworfen werden kann, wenn die Ressourcen knapp sind.
-
verworfen
boolean
Chrome 54 oder höher browser.* seit Chrome 148Gibt an, ob der Tab verworfen wird. Ein verworfener Tab ist ein Tab, dessen Inhalt aus dem Arbeitsspeicher entfernt wurde, der aber weiterhin im Tabstreifen sichtbar ist. Der Inhalt wird beim nächsten Aktivieren neu geladen.
-
favIconUrl
String optional
Die URL des Favicons des Tabs. Diese Property ist nur vorhanden, wenn die Erweiterung die Berechtigung
"tabs"oder Hostberechtigungen für die Seite hat. Es kann auch ein leerer String sein, wenn der Tab geladen wird. -
Reagiert nicht
boolean
Chrome 132 und höher browser.* seit Chrome 148Gibt an, ob der Tab eingefroren ist. Ein eingefrorener Tab kann keine Aufgaben ausführen, einschließlich Event-Handler oder Timer. Er ist in der Tableiste sichtbar und sein Inhalt wird in den Arbeitsspeicher geladen. Sie wird bei der Aktivierung wieder freigegeben.
-
groupId
Zahl
Chrome 88 oder höher browser.* seit Chrome 148Die ID der Gruppe, zu der der Tab gehört.
-
Höhe
number optional
Die Höhe des Tabs in Pixeln.
-
hervorgehoben
boolean
Gibt an, ob der Tab hervorgehoben ist.
-
id
number optional
Die ID des Tabs. Tab-IDs sind innerhalb einer Browsersitzung eindeutig. Unter bestimmten Umständen wird einem Tab möglicherweise keine ID zugewiesen, z. B. wenn externe Tabs über die
sessionsAPI abgefragt werden. In diesem Fall ist möglicherweise eine Sitzungs-ID vorhanden. Die Tab-ID kann für Apps und Entwicklertools-Fenster auch aufchrome.tabs.TAB_ID_NONEfestgelegt werden. -
inkognito
boolean
Gibt an, ob sich der Tab in einem Inkognitofenster befindet.
-
Index
Zahl
Der nullbasierte Index des Tabs innerhalb des Fensters.
-
lastAccessed
Zahl
Chrome 121 und höher browser.* ab Chrome 148Der Zeitpunkt, zu dem der Tab zuletzt in seinem Fenster aktiv wurde, als Anzahl der Millisekunden seit der Epoche.
-
mutedInfo
MutedInfo optional
Chrome 46 und höher browser.* seit Chrome 148Der Stummschaltungsstatus des Tabs und der Grund für die letzte Statusänderung.
-
openerTabId
number optional
Die ID des Tabs, über den dieser Tab geöffnet wurde, falls vorhanden. Diese Property ist nur vorhanden, wenn der Tab, der den aktuellen Tab geöffnet hat, noch existiert.
-
pendingUrl
String optional
Chrome 79 und höher browser.* seit Chrome 148Die URL, zu der der Tab navigiert, bevor er bestätigt wurde. Diese Property ist nur vorhanden, wenn die Erweiterung die Berechtigung
"tabs"oder Hostberechtigungen für die Seite hat und eine Navigation aussteht. -
Angepinnt
boolean
Gibt an, ob der Tab angepinnt ist.
-
ausgewählt
boolean
EingestelltBitte verwende
tabs.Tab.highlighted.Gibt an, ob der Tab ausgewählt ist.
-
sessionId
String optional
Die Sitzungs-ID, die zur eindeutigen Identifizierung eines Tabs verwendet wird, der über die
sessionsAPI abgerufen wurde. -
splitViewId
number optional
Chrome 140+ browser.* seit Chrome 148Die ID der geteilten Ansicht, zu der der Tab gehört.
-
Status
TabStatus optional
Der Ladestatus des Tabs.
-
Titel
String optional
Der Titel des Tabs. Diese Property ist nur vorhanden, wenn die Erweiterung die Berechtigung
"tabs"oder Hostberechtigungen für die Seite hat. -
URL
String optional
Die zuletzt übernommene URL des Hauptframes des Tabs. Diese Property ist nur vorhanden, wenn die Erweiterung die Berechtigung
"tabs"oder Hostberechtigungen für die Seite hat. Kann ein leerer String sein, wenn der Tab noch nicht übertragen wurde. Weitere Informationen finden Sie unterTab.pendingUrl. -
Breite
number optional
Die Breite des Tabs in Pixeln.
-
windowId
Zahl
Die ID des Fensters, das den Tab enthält.
TabStatus
Der Ladestatus des Tabs.
Enum
"unloaded"
"loading"
"complete"
WindowType
Der Typ des Fensters.
Enum
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
Legt fest, wie Zoomänderungen in einem Tab verarbeitet werden und in welchem Umfang.
Attribute
-
defaultZoomFactor
number optional
Chrome 43 und höher browser.* seit Chrome 148Wird verwendet, um die Standardzoomstufe für den aktuellen Tab in Aufrufen von „tabs.getZoomSettings“ zurückzugeben.
-
Modus
ZoomSettingsMode optional
Definiert, wie Zoomänderungen verarbeitet werden, d. h. welche Entität für die tatsächliche Skalierung der Seite verantwortlich ist. Der Standardwert ist
automatic. -
Bereich
ZoomSettingsScope optional
Definiert, ob Zoomänderungen für den Ursprung der Seite beibehalten werden oder nur auf diesem Tab wirksam sind. Der Standardwert ist
per-originim Modusautomaticund andernfallsper-tab.
ZoomSettingsMode
Definiert, wie Zoomänderungen verarbeitet werden, d. h. welche Entität für die tatsächliche Skalierung der Seite verantwortlich ist. Der Standardwert ist automatic.
Enum
"automatic"
Zoomänderungen werden automatisch vom Browser verarbeitet.
"manual"
Überschreibt die automatische Verarbeitung von Zoomänderungen. Das Ereignis onZoomChange wird weiterhin ausgelöst. Die Erweiterung muss dieses Ereignis beobachten und die Seite manuell skalieren. In diesem Modus wird das Zoomen mit per-origin nicht unterstützt. Daher wird die Zoomeinstellung scope ignoriert und per-tab angenommen.
"disabled"
Deaktiviert das Zoomen im Tab. Der Tab wird auf die Standardzoomstufe zurückgesetzt und alle versuchten Zoomänderungen werden ignoriert.
ZoomSettingsScope
Definiert, ob Zoomänderungen für den Ursprung der Seite beibehalten werden oder nur auf diesem Tab wirksam sind. Der Standardwert ist per-origin im Modus automatic und andernfalls per-tab.
Enum
"per-origin"
Zoomänderungen bleiben für den Ursprung der gezoomten Seite persistent gespeichert, d.h., alle anderen Tabs, die zu demselben Ursprung navigiert werden, werden ebenfalls gezoomt. Außerdem werden per-origin-Zoomänderungen mit dem Ursprung gespeichert. Das bedeutet, dass beim Aufrufen anderer Seiten im selben Ursprung alle auf denselben Zoomfaktor gezoomt werden. Der Bereich per-origin ist nur im Modus automatic verfügbar.
„per-tab“
Zoomänderungen werden nur auf diesem Tab wirksam und Zoomänderungen auf anderen Tabs wirken sich nicht auf den Zoom dieses Tabs aus. Außerdem werden Änderungen am Zoomfaktor von per-tab beim Navigieren zurückgesetzt. Beim Navigieren auf einem Tab werden Seiten immer mit dem Zoomfaktor von per-origin geladen.
Attribute
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Die maximale Anzahl von Aufrufen von captureVisibleTab pro Sekunde. captureVisibleTab ist teuer und sollte nicht zu oft aufgerufen werden.
Wert
2
SPLIT_VIEW_ID_NONE
Eine ID, die das Fehlen eines geteilten Tabs darstellt.
Wert
-1
TAB_ID_NONE
Eine ID, die das Fehlen eines Browsertabs darstellt.
Wert
-1
TAB_INDEX_NONE
Ein Index, der das Fehlen eines Tab-Index in einer Tableiste darstellt.
Wert
-1
Methoden
captureVisibleTab()
browser.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
): Promise<string>
Erfasst den sichtbaren Bereich des aktuell aktiven Tabs im angegebenen Fenster. Damit diese Methode aufgerufen werden kann, muss die Erweiterung entweder die Berechtigung <all_urls> oder die Berechtigung activeTab haben. Zusätzlich zu Websites, auf die Erweiterungen normalerweise zugreifen können, können Erweiterungen mit dieser Methode vertrauliche Websites erfassen, die sonst eingeschränkt sind, einschließlich Seiten mit dem Schema „chrome:“, Seiten anderer Erweiterungen und URLs mit dem Schema „data:“. Diese vertraulichen Websites können nur mit der Berechtigung „activeTab“ erfasst werden. Datei-URLs dürfen nur erfasst werden, wenn der Erweiterung Dateizugriff gewährt wurde.
Parameter
-
windowId
number optional
Das Zielfenster. Die Standardeinstellung ist das aktuelle Fenster.
-
Optionen
ImageDetails optional
Ausgabe
-
Promise<string>
Chrome 88 oder höher browser.* seit Chrome 148
connect()
browser.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Stellt eine Verbindung zu den Inhaltsskripts im angegebenen Tab her. Das Ereignis runtime.onConnect wird in jedem Inhaltsskript ausgelöst, das auf dem angegebenen Tab für die aktuelle Erweiterung ausgeführt wird. Weitere Informationen finden Sie unter Content Script Messaging.
Parameter
-
tabId
Zahl
-
connectInfo
Objekt optional
-
documentId
String optional
Chrome 106 und höher browser.* seit Chrome 148Öffnet einen Port zu einem bestimmten Dokument, das durch
documentIdidentifiziert wird, anstatt zu allen Frames im Tab. -
frameId
number optional
Öffnet einen Port zu einem bestimmten Frame, der durch
frameIdidentifiziert wird, anstatt zu allen Frames im Tab. -
name
String optional
Wird an „onConnect“ für Inhaltsskripts übergeben, die auf das Verbindungsereignis warten.
-
Ausgabe
-
Ein Port, der für die Kommunikation mit den Inhaltsskripts verwendet werden kann, die auf dem angegebenen Tab ausgeführt werden. Das
runtime.Port-Ereignis des Ports wird ausgelöst, wenn der Tab geschlossen wird oder nicht vorhanden ist.
Parameter
-
createProperties
Objekt
-
aktiv
Boolesch optional
Gibt an, ob der Tab der aktive Tab im Fenster werden soll. Hat keine Auswirkungen darauf, ob das Fenster fokussiert ist (siehe
windows.update). Der Standardwert isttrue. -
Index
number optional
Die Position, die der Tab im Fenster einnehmen soll. Der angegebene Wert wird auf einen Wert zwischen null und der Anzahl der Tabs im Fenster beschränkt.
-
openerTabId
number optional
Die ID des Tabs, über den dieser Tab geöffnet wurde. Falls angegeben, muss sich der Tab, der den neuen Tab geöffnet hat, im selben Fenster wie der neu erstellte Tab befinden.
-
Angepinnt
Boolesch optional
Gibt an, ob der Tab angepinnt werden soll. Die Standardeinstellung ist
false. -
ausgewählt
Boolesch optional
EingestelltVerwenden Sie stattdessen active.
Gibt an, ob der Tab der ausgewählte Tab im Fenster werden soll. Die Standardeinstellung ist
true. -
splitWithTabId
number optional
Chrome 155 oder höherDie ID eines vorhandenen Tabs, mit dem eine geteilte Ansicht erstellt werden soll. Falls angegeben, muss der Tab „split-with“ die folgenden Bedingungen erfüllen:
- Es darf sich nicht um einen bereits geteilten Tab handeln.
- Er muss sich im selben Fenster wie der neu erstellte Tab befinden.
- Wenn
windowIdangegeben ist, muss sie mit der Fenster-ID des Tabs übereinstimmen, mit dem der Tab geteilt wird. - Wenn
indexangegeben ist, muss es sich um einen Index handeln, der an den Tab angrenzt, mit dem der Tab geteilt wird. Dies wirkt sich auf die relative Positionierung des neu erstellten Tabs aus.
-
URL
String optional
Die URL, zu der der Tab zuerst navigieren soll. Vollständig qualifizierte URLs müssen ein Schema enthalten (z.B. 'http://www.google.com', nicht 'www.google.com'). Relative URLs beziehen sich auf die aktuelle Seite innerhalb der Erweiterung. Standardmäßig wird die Seite „Neuer Tab“ verwendet.
-
windowId
number optional
Das Fenster, in dem der neue Tab erstellt werden soll. Die Standardeinstellung ist das aktuelle Fenster.
-
Ausgabe
-
Promise<Tab>
Chrome 88 oder höher browser.* seit Chrome 148
createSplit()
browser.tabs.createSplit(
tabIds: [number, number],
): Promise<number>
Teilt zwei vorhandene Tabs in eine geteilte Ansicht auf.
Parameter
-
tabIds
[Zahl, Zahl]
Ein Array mit genau zwei Tab-IDs, die in einer geteilten Ansicht gekoppelt werden sollen. Alle Tabs müssen die folgenden Bedingungen erfüllen:
Sie müssen nebeneinander liegen. Sie dürfen sich noch nicht in einer geteilten Ansicht befinden. Sie müssen übereinstimmende
windowId-,pinned- undgroupId-Status haben.
Ausgabe
-
Promise<number>
detectLanguage()
browser.tabs.detectLanguage(
tabId?: number,
): Promise<string>
Erkennt die Hauptsprache des Inhalts in einem Tab.
Parameter
-
tabId
number optional
Standardmäßig wird der aktive Tab des aktuellen Fensters verwendet.
Ausgabe
-
Promise<string>
Chrome 88 oder höher browser.* seit Chrome 148
discard()
browser.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
Entfernt einen Tab aus dem Arbeitsspeicher. Verworfene Tabs sind weiterhin in der Tableiste sichtbar und werden neu geladen, wenn sie aktiviert werden.
Parameter
-
tabId
number optional
Die ID des Tabs, der verworfen werden soll. Wenn angegeben, wird der Tab verworfen, es sei denn, er ist aktiv oder wurde bereits verworfen. Wenn nichts angegeben ist, verwirft der Browser den am wenigsten wichtigen Tab. Dies kann fehlschlagen, wenn keine verwerfbaren Tabs vorhanden sind.
Ausgabe
-
Promise<Tab | undefined>
Chrome 88 oder höher browser.* seit Chrome 148Wird aufgelöst, nachdem der Vorgang abgeschlossen ist.
Parameter
-
tabId
Zahl
Die ID des zu duplizierenden Tabs.
Ausgabe
-
Promise<Tab | undefined>
Chrome 88 oder höher browser.* seit Chrome 148
Parameter
-
tabId
Zahl
Ausgabe
-
Promise<Tab>
Chrome 88 oder höher browser.* seit Chrome 148
getCurrent()
browser.tabs.getCurrent(): Promise<Tab | undefined>
Ruft den Tab ab, von dem aus dieser Skriptaufruf erfolgt. Gibt undefined zurück, wenn der Aufruf nicht aus einem Tab-Kontext erfolgt (z. B. von einer Hintergrundseite oder einer Pop-up-Ansicht).
Ausgabe
-
Promise<Tab | undefined>
Chrome 88 oder höher browser.* seit Chrome 148
getZoom()
browser.tabs.getZoom(
tabId?: number,
): Promise<number>
Ruft den aktuellen Zoomfaktor eines angegebenen Tabs ab.
Parameter
-
tabId
number optional
Die ID des Tabs, von dem der aktuelle Zoomfaktor abgerufen werden soll. Standardmäßig wird der aktive Tab des aktuellen Fensters verwendet.
Ausgabe
-
Promise<number>
Chrome 88 oder höher browser.* seit Chrome 148Wird mit dem aktuellen Zoomfaktor des Tabs aufgelöst, nachdem er abgerufen wurde.
getZoomSettings()
browser.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
Ruft die aktuellen Zoomeinstellungen eines angegebenen Tabs ab.
Parameter
-
tabId
number optional
Die ID des Tabs, von dem die aktuellen Zoomeinstellungen abgerufen werden sollen. Standardmäßig wird der aktive Tab des aktuellen Fensters verwendet.
Ausgabe
-
Promise<ZoomSettings>
Chrome 88 oder höher browser.* seit Chrome 148Wird mit den aktuellen Zoomeinstellungen des Tabs aufgelöst.
goBack()
browser.tabs.goBack(
tabId?: number,
): Promise<void>
Zurück zur vorherigen Seite, falls verfügbar.
Parameter
-
tabId
number optional
Die ID des Tabs, zu dem zurückgekehrt werden soll. Standardmäßig wird der ausgewählte Tab des aktuellen Fensters verwendet.
Ausgabe
-
Promise<void>
Chrome 88 oder höher browser.* seit Chrome 148
goForward()
browser.tabs.goForward(
tabId?: number,
): Promise<void>
Zur nächsten Seite wechseln, falls eine verfügbar ist.
Parameter
-
tabId
number optional
Die ID des Tabs, zu dem vorwärts navigiert werden soll. Standardmäßig wird der ausgewählte Tab des aktuellen Fensters verwendet.
Ausgabe
-
Promise<void>
Chrome 88 oder höher browser.* seit Chrome 148
group()
browser.tabs.group(
options: object,
): Promise<number>
Fügt einer angegebenen Gruppe einen oder mehrere Tabs hinzu. Wenn keine Gruppe angegeben ist, werden die angegebenen Tabs einer neu erstellten Gruppe hinzugefügt.
Parameter
-
Optionen
Objekt
-
createProperties
Objekt optional
Konfigurationen zum Erstellen einer Gruppe. Kann nicht verwendet werden, wenn „groupId“ bereits angegeben ist.
-
windowId
number optional
Das Fenster der neuen Gruppe. Die Standardeinstellung ist das aktuelle Fenster.
-
-
groupId
number optional
Die ID der Gruppe, der die Tabs hinzugefügt werden sollen. Wenn keine angegeben ist, wird eine neue Gruppe erstellt.
-
tabIds
number | [number, ...number[]]
Die Tab-ID oder Liste der Tab-IDs, die der angegebenen Gruppe hinzugefügt werden sollen.
-
Ausgabe
-
Promise<number>
highlight()
browser.tabs.highlight(
highlightInfo: object,
): Promise<windows.Window>
Hebt die angegebenen Tabs hervor und fokussiert den ersten Tab der Gruppe. Wenn der angegebene Tab gerade aktiv ist, passiert nichts.
Parameter
-
highlightInfo
Objekt
-
tabs
number | number[]
Ein oder mehrere Tab-Indizes, die hervorgehoben werden sollen.
-
windowId
number optional
Das Fenster, das die Tabs enthält.
-
Ausgabe
-
Promise<windows.Window>
Chrome 88 oder höher browser.* seit Chrome 148
move()
browser.tabs.move(
tabIds: number | number[],
moveProperties: object,
): Promise<Tab | Tab[]>
Verschiebt einen oder mehrere Tabs an eine neue Position im Fenster oder in ein neues Fenster. Tabs können nur in und aus normalen Fenstern (window.type === „normal“) verschoben werden.
Parameter
-
tabIds
number | number[]
Die Tab-ID oder Liste der Tab-IDs, die verschoben werden sollen.
-
moveProperties
Objekt
-
Index
Zahl
Die Position, an die das Fenster verschoben werden soll. Verwenden Sie
-1, um den Tab am Ende des Fensters zu platzieren. -
windowId
number optional
Die Standardeinstellung ist das Fenster, in dem sich der Tab gerade befindet.
-
query()
browser.tabs.query(
queryInfo: object,
): Promise<Tab[]>
Ruft alle Tabs mit den angegebenen Attributen ab oder alle Tabs, wenn keine Attribute angegeben sind.
Parameter
-
queryInfo
Objekt
-
aktiv
Boolesch optional
Ob die Tabs in ihren Fenstern aktiv sind.
-
audible
Boolesch optional
Chrome 45 und höher browser.* seit Chrome 148Gibt an, ob die Tabs hörbar sind.
-
autoDiscardable
Boolesch optional
Chrome 54 oder höher browser.* seit Chrome 148Gibt an, ob Tabs vom Browser automatisch verworfen werden können, wenn die Ressourcen knapp sind.
-
currentWindow
Boolesch optional
Ob sich die Tabs im aktuellen Fenster befinden.
-
verworfen
Boolesch optional
Chrome 54 oder höher browser.* seit Chrome 148Gibt an, ob die Tabs verworfen werden. Ein verworfener Tab ist ein Tab, dessen Inhalt aus dem Arbeitsspeicher entfernt wurde, der aber weiterhin im Tabstreifen sichtbar ist. Der Inhalt wird beim nächsten Aktivieren neu geladen.
-
Reagiert nicht
Boolesch optional
Chrome 132 und höher browser.* seit Chrome 148Ob die Tabs eingefroren sind. Ein eingefrorener Tab kann keine Aufgaben ausführen, einschließlich Event-Handler oder Timer. Er ist in der Tableiste sichtbar und sein Inhalt wird in den Arbeitsspeicher geladen. Sie wird bei der Aktivierung wieder freigegeben.
-
groupId
number optional
Chrome 88 oder höher browser.* seit Chrome 148Die ID der Gruppe, in der sich die Tabs befinden, oder
tabGroups.TAB_GROUP_ID_NONEfür nicht gruppierte Tabs. -
hervorgehoben
Boolesch optional
Gibt an, ob die Tabs hervorgehoben sind.
-
Index
number optional
Die Position der Tabs in den Fenstern.
-
lastFocusedWindow
Boolesch optional
Gibt an, ob sich die Tabs im zuletzt fokussierten Fenster befinden.
-
stummgeschaltet
Boolesch optional
Chrome 45 und höher browser.* seit Chrome 148Ob die Tabs stummgeschaltet sind.
-
Angepinnt
Boolesch optional
Ob die Tabs angepinnt sind.
-
splitViewId
number optional
Chrome 140+ browser.* seit Chrome 148Die ID der geteilten Ansicht, in der sich die Tabs befinden, oder
tabs.SPLIT_VIEW_ID_NONEfür Tabs, die sich nicht in einer geteilten Ansicht befinden. -
Status
TabStatus optional
Der Ladestatus des Tabs.
-
Titel
String optional
Seitentitel mit einem Muster abgleichen. Diese Property wird ignoriert, wenn die Erweiterung nicht die Berechtigung
"tabs"oder Hostberechtigungen für die Seite hat. -
URL
string | string[] optional
Tabs mit einem oder mehreren URL-Mustern abgleichen. Fragmentbezeichner werden nicht abgeglichen. Diese Property wird ignoriert, wenn die Erweiterung nicht die Berechtigung
"tabs"oder Hostberechtigungen für die Seite hat. -
windowId
number optional
Die ID des übergeordneten Fensters oder
windows.WINDOW_ID_CURRENTfür das aktuelle Fenster. -
windowType
WindowType optional
Der Typ des Fensters, in dem sich die Tabs befinden.
-
Ausgabe
-
Promise<Tab[]>
Chrome 88 oder höher browser.* seit Chrome 148
reload()
browser.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise<void>
Tab aktualisieren
Parameter
-
tabId
number optional
Die ID des Tabs, der neu geladen werden soll. Standardmäßig wird der ausgewählte Tab des aktuellen Fensters verwendet.
-
reloadProperties
Objekt optional
-
bypassCache
Boolesch optional
Gibt an, ob das lokale Caching umgangen werden soll. Die Standardeinstellung ist
false.
-
Ausgabe
-
Promise<void>
Chrome 88 oder höher browser.* seit Chrome 148
remove()
browser.tabs.remove(
tabIds: number | number[],
): Promise<void>
Schließt einen oder mehrere Tabs.
Parameter
-
tabIds
number | number[]
Die Tab-ID oder Liste der Tab-IDs, die geschlossen werden sollen.
Ausgabe
-
Promise<void>
Chrome 88 oder höher browser.* seit Chrome 148
sendMessage()
browser.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): Promise<any>
Sendet eine einzelne Nachricht an die Inhaltsskripts auf dem angegebenen Tab. Das Ereignis runtime.onMessage wird in jedem Inhaltsskript ausgelöst, das auf dem angegebenen Tab für die aktuelle Erweiterung ausgeführt wird.
Parameter
-
tabId
Zahl
-
Nachricht
beliebig
Die zu sendende Nachricht. Diese Nachricht sollte ein JSON-fähiges Objekt sein.
-
Optionen
Objekt optional
-
documentId
String optional
Chrome 106 und höher browser.* seit Chrome 148Senden Sie eine Nachricht an ein bestimmtes Dokument, das durch
documentIdidentifiziert wird, anstatt an alle Frames im Tab. -
frameId
number optional
Eine Nachricht an einen bestimmten Frame senden, der durch
frameIdidentifiziert wird, anstatt an alle Frames im Tab.
-
Ausgabe
-
Promise<any>
Chrome 99 und höher browser.* seit Chrome 148Promise, das mit der Antwort des Inhaltsskripts aufgelöst wird. Wenn beim Herstellen der Verbindung zum angegebenen Tab ein Fehler auftritt, wird das Promise abgelehnt.
setZoom()
browser.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise<void>
Zoomt einen bestimmten Tab.
Parameter
-
tabId
number optional
Die ID des Tabs, der gezoomt werden soll. Standardmäßig wird der aktive Tab des aktuellen Fensters verwendet.
-
zoomFactor
Zahl
Der neue Zoomfaktor. Mit dem Wert
0wird der Tab auf den aktuellen Standard-Zoomfaktor gesetzt. Werte, die größer als0sind, geben einen (möglicherweise nicht standardmäßigen) Zoomfaktor für den Tab an.
Ausgabe
-
Promise<void>
Chrome 88 oder höher browser.* seit Chrome 148Wird aufgelöst, nachdem der Zoomfaktor geändert wurde.
setZoomSettings()
browser.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise<void>
Legt die Zoomeinstellungen für einen bestimmten Tab fest, die definieren, wie Zoomänderungen verarbeitet werden. Diese Einstellungen werden beim Verlassen des Tabs auf die Standardeinstellungen zurückgesetzt.
Parameter
-
tabId
number optional
Die ID des Tabs, für den die Zoomeinstellungen geändert werden sollen. Standardmäßig wird der aktive Tab des aktuellen Fensters verwendet.
-
zoomSettings
Definiert, wie Zoomänderungen verarbeitet werden und in welchem Umfang.
Ausgabe
-
Promise<void>
Chrome 88 oder höher browser.* seit Chrome 148Wird aufgelöst, nachdem die Zoomeinstellungen geändert wurden.
ungroup()
browser.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise<void>
Entfernt einen oder mehrere Tabs aus den jeweiligen Gruppen. Wenn Gruppen leer werden, werden sie gelöscht.
Parameter
-
tabIds
number | [number, ...number[]]
Die Tab-ID oder Liste der Tab-IDs, die aus den jeweiligen Gruppen entfernt werden sollen.
Ausgabe
-
Promise<void>
unsplit()
browser.tabs.unsplit(
splitViewId: number,
): Promise<void>
Die Tabs in einer geteilten Ansicht werden in separate Tabs aufgeteilt.
Parameter
-
splitViewId
Zahl
Die ID der zu trennenden geteilten Ansicht.
Ausgabe
-
Promise<void>
update()
browser.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
Ändert die Eigenschaften eines Tabs. Attribute, die nicht in updateProperties angegeben sind, werden nicht geändert.
Parameter
-
tabId
number optional
Standardmäßig wird der ausgewählte Tab des aktuellen Fensters verwendet.
-
updateProperties
Objekt
-
aktiv
Boolesch optional
Gibt an, ob der Tab aktiv sein soll. Hat keine Auswirkungen darauf, ob das Fenster fokussiert ist (siehe
windows.update). -
autoDiscardable
Boolesch optional
Chrome 54 oder höher browser.* seit Chrome 148Gibt an, ob der Tab vom Browser automatisch verworfen werden soll, wenn die Ressourcen knapp sind.
-
hervorgehoben
Boolesch optional
Fügt den Tab der aktuellen Auswahl hinzu oder entfernt ihn daraus.
-
stummgeschaltet
Boolesch optional
Chrome 45 und höher browser.* seit Chrome 148Gibt an, ob der Tab stummgeschaltet werden soll.
-
openerTabId
number optional
Die ID des Tabs, über den dieser Tab geöffnet wurde. Wenn angegeben, muss sich der Tab, der den neuen Tab geöffnet hat, im selben Fenster wie dieser Tab befinden.
-
Angepinnt
Boolesch optional
Gibt an, ob der Tab angepinnt werden soll.
-
ausgewählt
Boolesch optional
EingestelltBitte verwenden Sie Hervorgehoben.
Gibt an, ob der Tab ausgewählt werden soll.
-
URL
String optional
Eine URL, zu der der Tab weitergeleitet werden soll. JavaScript-URLs werden nicht unterstützt. Verwenden Sie stattdessen
scripting.executeScript.
-
Ausgabe
-
Promise<Tab | undefined>
Chrome 88 oder höher browser.* seit Chrome 148
Ereignisse
onActivated
browser.tabs.onActivated.addListener(
callback: function,
)
Wird ausgelöst, wenn sich der aktive Tab in einem Fenster ändert. Beachten Sie, dass die URL des Tabs möglicherweise nicht festgelegt ist, wenn dieses Ereignis ausgelöst wird. Sie können jedoch auf „onUpdated“-Ereignisse warten, um benachrichtigt zu werden, wenn eine URL festgelegt wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(activeInfo: object) => void
-
activeInfo
Objekt
-
tabId
Zahl
Die ID des Tabs, der aktiv geworden ist.
-
windowId
Zahl
Die ID des Fensters, in dem sich der aktive Tab geändert hat.
-
-
onAttached
browser.tabs.onAttached.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Tab an ein Fenster angehängt wird, z. B. weil er zwischen Fenstern verschoben wurde.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(tabId: number, attachInfo: object) => void
-
tabId
Zahl
-
attachInfo
Objekt
-
newPosition
Zahl
-
newWindowId
Zahl
-
-
onCreated
browser.tabs.onCreated.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Tab erstellt wird. Beachten Sie, dass die URL des Tabs und die Zugehörigkeit zu einer Tabgruppe möglicherweise nicht festgelegt sind, wenn dieses Ereignis ausgelöst wird. Sie können jedoch auf „onUpdated“-Ereignisse warten, um benachrichtigt zu werden, wenn eine URL festgelegt oder der Tab einer Tabgruppe hinzugefügt wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(tab: Tab) => void
-
Tabulatortaste
-
onDetached
browser.tabs.onDetached.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Tab von einem Fenster getrennt wird, z. B. weil er in ein anderes Fenster verschoben wurde.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(tabId: number, detachInfo: object) => void
-
tabId
Zahl
-
detachInfo
Objekt
-
oldPosition
Zahl
-
oldWindowId
Zahl
-
-
onHighlighted
browser.tabs.onHighlighted.addListener(
callback: function,
)
Wird ausgelöst, wenn sich die hervorgehobenen oder ausgewählten Tabs in einem Fenster ändern.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(highlightInfo: object) => void
-
highlightInfo
Objekt
-
tabIds
number[]
Alle markierten Tabs im Fenster.
-
windowId
Zahl
Das Fenster, dessen Tabs geändert wurden.
-
-
onMoved
browser.tabs.onMoved.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Tab innerhalb eines Fensters verschoben wird. Es wird nur ein Verschiebeereignis ausgelöst, das den Tab darstellt, den der Nutzer direkt verschoben hat. Für die anderen Tabs, die sich als Reaktion auf den manuell verschobenen Tab bewegen müssen, werden keine Verschiebungsereignisse ausgelöst. Dieses Ereignis wird nicht ausgelöst, wenn ein Tab zwischen Fenstern verschoben wird. Weitere Informationen finden Sie unter tabs.onDetached.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(tabId: number, moveInfo: object) => void
-
tabId
Zahl
-
moveInfo
Objekt
-
fromIndex
Zahl
-
toIndex
Zahl
-
windowId
Zahl
-
-
onRemoved
browser.tabs.onRemoved.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Tab geschlossen wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(tabId: number, removeInfo: object) => void
-
tabId
Zahl
-
removeInfo
Objekt
-
isWindowClosing
boolean
„True“, wenn der Tab geschlossen wurde, weil das übergeordnete Fenster geschlossen wurde.
-
windowId
Zahl
Das Fenster, dessen Tab geschlossen wird.
-
-
onReplaced
browser.tabs.onReplaced.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Tab aufgrund von Prerendering oder Instant durch einen anderen Tab ersetzt wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(addedTabId: number, removedTabId: number) => void
-
addedTabId
Zahl
-
removedTabId
Zahl
-
onUpdated
browser.tabs.onUpdated.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Tab aktualisiert wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
Zahl
-
changeInfo
Objekt
-
audible
Boolesch optional
Chrome 45 und höher browser.* seit Chrome 148Der neue Audiostatus des Tabs.
-
autoDiscardable
Boolesch optional
Chrome 54 oder höher browser.* seit Chrome 148Der neue Status des Tabs für das automatische Verwerfen.
-
verworfen
Boolesch optional
Chrome 54 oder höher browser.* seit Chrome 148Der neue verworfene Status des Tabs.
-
favIconUrl
String optional
Die neue Favicon-URL des Tabs.
-
Reagiert nicht
Boolesch optional
Chrome 132 und höher browser.* seit Chrome 148Der neue eingefrorene Status des Tabs.
-
groupId
number optional
Chrome 88 oder höher browser.* seit Chrome 148Die neue Gruppe des Tabs.
-
mutedInfo
MutedInfo optional
Chrome 46 und höher browser.* seit Chrome 148Der neue Stummschaltungsstatus des Tabs und der Grund für die Änderung.
-
Angepinnt
Boolesch optional
Der neue angepinnte Status des Tabs.
-
splitViewId
number optional
Chrome 140+ browser.* seit Chrome 148Die neue geteilte Ansicht des Tabs.
-
Status
TabStatus optional
Der Ladestatus des Tabs.
-
Titel
String optional
Chrome 48 oder höher browser.* seit Chrome 148Der neue Titel des Tabs.
-
URL
String optional
Die URL des Tabs, falls sie sich geändert hat.
-
-
Tabulatortaste
-
onZoomChange
browser.tabs.onZoomChange.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Tab gezoomt wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
Objekt
-
newZoomFactor
Zahl
-
oldZoomFactor
Zahl
-
tabId
Zahl
-
zoomSettings
-
-