browser.tabs

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 in tabs.Tab-Instanzen aufzurufen: url, pendingUrl, title und favIconUrl.

{
  "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 wie tabs.captureVisibleTab(), scripting.executeScript(), scripting.insertCSS() und scripting.removeCSS() verwenden.

{
  "name": "My extension",
  ...
  "host_permissions": [
    "http://*/*",
    "https://*/*"
  ],
  ...
}
Die Berechtigung „activeTab“

activeTab gewährt einer Erweiterung als Reaktion auf einen Nutzeraufruf eine temporäre Hostberechtigung für den aktuellen Tab. Im Gegensatz zu Hostberechtigungen werden bei activeTab keine 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

Chrome 46 und höher browser.* seit Chrome 148

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

Chrome 46 und höher browser.* seit Chrome 148

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 148

    Ob 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 148

    Gibt 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 148

    Gibt 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 148

    Gibt 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 148

    Die 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 sessions API abgefragt werden. In diesem Fall ist möglicherweise eine Sitzungs-ID vorhanden. Die Tab-ID kann für Apps und Entwicklertools-Fenster auch auf chrome.tabs.TAB_ID_NONE festgelegt 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 148

    Der 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 148

    Der 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 148

    Die 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

    Eingestellt

    Bitte 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 sessions API abgerufen wurde.

  • splitViewId

    number optional

    Chrome 140+ browser.* seit Chrome 148

    Die 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 unter Tab.pendingUrl.

  • Breite

    number optional

    Die Breite des Tabs in Pixeln.

  • windowId

    Zahl

    Die ID des Fensters, das den Tab enthält.

TabStatus

Chrome 44 und höher browser.* seit Chrome 148

Der Ladestatus des Tabs.

Enum

"unloaded"

"loading"

"complete"

WindowType

Chrome 44 und höher browser.* seit Chrome 148

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 148

    Wird verwendet, um die Standardzoomstufe für den aktuellen Tab in Aufrufen von „tabs.getZoomSettings“ zurückzugeben.

  • Modus

    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

    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.

ZoomSettingsMode

Chrome 44 und höher browser.* seit Chrome 148

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

Chrome 44 und höher browser.* seit Chrome 148

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

Chrome 92+ browser.* seit Chrome 148

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

Chrome 140+ browser.* seit Chrome 148

Eine ID, die das Fehlen eines geteilten Tabs darstellt.

Wert

-1

TAB_ID_NONE

Chrome 46 und höher browser.* seit Chrome 148

Eine ID, die das Fehlen eines Browsertabs darstellt.

Wert

-1

TAB_INDEX_NONE

Chrome 123 und höher browser.* seit Chrome 148

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

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 documentId identifiziert wird, anstatt zu allen Frames im Tab.

    • frameId

      number optional

      Öffnet einen Port zu einem bestimmten Frame, der durch frameId identifiziert 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.

create()

browser.tabs.create(
  createProperties: object,
)
: Promise<Tab>

Erstellt einen neuen Tab.

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 ist true.

    • 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

      Eingestellt

      Verwenden 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öher

      Die 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 windowId angegeben ist, muss sie mit der Fenster-ID des Tabs übereinstimmen, mit dem der Tab geteilt wird.
      • Wenn index angegeben 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()

Chrome 155 oder höher
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- und groupId-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()

Chrome 54 oder höher browser.* seit Chrome 148
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 148

    Wird aufgelöst, nachdem der Vorgang abgeschlossen ist.

duplicate()

browser.tabs.duplicate(
  tabId: number,
)
: Promise<Tab | undefined>

Dupliziert einen Tab.

Parameter

  • tabId

    Zahl

    Die ID des zu duplizierenden Tabs.

Ausgabe

  • Promise<Tab | undefined>

    Chrome 88 oder höher browser.* seit Chrome 148

get()

browser.tabs.get(
  tabId: number,
)
: Promise<Tab>

Ruft Details zum angegebenen Tab ab.

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 148

    Wird 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 148

    Wird mit den aktuellen Zoomeinstellungen des Tabs aufgelöst.

goBack()

Chrome 72 und höher browser.* seit Chrome 148
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()

Chrome 72 und höher browser.* seit Chrome 148
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()

Chrome 88 oder höher browser.* seit Chrome 148
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

  • 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.

Ausgabe

  • Promise<Tab | Tab[]>

    Chrome 88 oder höher browser.* seit Chrome 148

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 148

      Gibt an, ob die Tabs hörbar sind.

    • autoDiscardable

      Boolesch optional

      Chrome 54 oder höher browser.* seit Chrome 148

      Gibt 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 148

      Gibt 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 148

      Ob 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 148

      Die ID der Gruppe, in der sich die Tabs befinden, oder tabGroups.TAB_GROUP_ID_NONE fü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 148

      Ob die Tabs stummgeschaltet sind.

    • Angepinnt

      Boolesch optional

      Ob die Tabs angepinnt sind.

    • splitViewId

      number optional

      Chrome 140+ browser.* seit Chrome 148

      Die ID der geteilten Ansicht, in der sich die Tabs befinden, oder tabs.SPLIT_VIEW_ID_NONE fü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_CURRENT fü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 148

      Senden Sie eine Nachricht an ein bestimmtes Dokument, das durch documentId identifiziert wird, anstatt an alle Frames im Tab.

    • frameId

      number optional

      Eine Nachricht an einen bestimmten Frame senden, der durch frameId identifiziert wird, anstatt an alle Frames im Tab.

Ausgabe

  • Promise<any>

    Chrome 99 und höher browser.* seit Chrome 148

    Promise, 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 0 wird der Tab auf den aktuellen Standard-Zoomfaktor gesetzt. Werte, die größer als 0 sind, geben einen (möglicherweise nicht standardmäßigen) Zoomfaktor für den Tab an.

Ausgabe

  • Promise<void>

    Chrome 88 oder höher browser.* seit Chrome 148

    Wird 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 148

    Wird aufgelöst, nachdem die Zoomeinstellungen geändert wurden.

ungroup()

Chrome 88 oder höher browser.* seit Chrome 148
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()

Chrome 155 oder höher
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 148

      Gibt 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 148

      Gibt 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

      Eingestellt

      Bitte 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 callback sieht 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 callback sieht 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 callback sieht 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 callback sieht 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 callback sieht 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 callback sieht 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 callback sieht 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 callback sieht 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 callback sieht so aus:

    (tabId: number, changeInfo: object, tab: Tab) => void

    • tabId

      Zahl

    • changeInfo

      Objekt

      • audible

        Boolesch optional

        Chrome 45 und höher browser.* seit Chrome 148

        Der neue Audiostatus des Tabs.

      • autoDiscardable

        Boolesch optional

        Chrome 54 oder höher browser.* seit Chrome 148

        Der neue Status des Tabs für das automatische Verwerfen.

      • verworfen

        Boolesch optional

        Chrome 54 oder höher browser.* seit Chrome 148

        Der 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 148

        Der neue eingefrorene Status des Tabs.

      • groupId

        number optional

        Chrome 88 oder höher browser.* seit Chrome 148

        Die neue Gruppe des Tabs.

      • mutedInfo

        MutedInfo optional

        Chrome 46 und höher browser.* seit Chrome 148

        Der 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 148

        Die neue geteilte Ansicht des Tabs.

      • Status

        TabStatus optional

        Der Ladestatus des Tabs.

      • Titel

        String optional

        Chrome 48 oder höher browser.* seit Chrome 148

        Der 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 callback sieht so aus:

    (ZoomChangeInfo: object) => void

    • ZoomChangeInfo

      Objekt

      • newZoomFactor

        Zahl

      • oldZoomFactor

        Zahl

      • tabId

        Zahl

      • zoomSettings