tabs.update()

Navigieren Sie den Tab zu einer neuen URL oder ändern Sie andere Eigenschaften des Tabs.

Um diese Funktion zu verwenden, übergeben Sie die ID des zu aktualisierenden Tabs und ein updateProperties-Objekt, das die zu ändernden Eigenschaften enthält. Eigenschaften, die nicht in updateProperties angegeben sind, werden nicht geändert.

Dies ist eine asynchrone Funktion, die ein Promise zurückgibt.

Syntax

js
let updating = browser.tabs.update(
  tabId,              // optional integer
  updateProperties    // object
)

Parameter

tabId Optional

integer. Standardmäßig der ausgewählte Tab des aktuellen Fensters.

updateProperties

object. Die Menge der Eigenschaften, die für diesen Tab aktualisiert werden sollen. Weitere Informationen zu diesen Eigenschaften finden Sie in der tabs.Tab Dokumentation.

active Optional

boolean. Ob der Tab aktiv werden soll. Beeinflusst nicht, ob das Fenster fokussiert ist (siehe windows.update). Wenn true, werden nicht-aktive hervorgehobene Tabs nicht mehr hervorgehoben. Wenn false, passiert nichts.

autoDiscardable Optional

boolean. Ob der Tab vom Browser verworfen werden kann. Der Standardwert ist true. Wenn auf false gesetzt, kann der Browser den Tab nicht automatisch verwerfen. Der Tab kann jedoch durch tabs.discard verworfen werden.

highlighted Optional

boolean. Fügt den Tab zur aktuellen Auswahl hinzu oder entfernt ihn. Wenn true und der Tab nicht hervorgehoben ist, wird er standardmäßig aktiv.

Wenn Sie den Tab nur hervorheben möchten, ohne ihn zu aktivieren, akzeptiert Firefox das Setzen von highlighted auf true und active auf false. Andere Browser können den Tab selbst in diesem Fall aktivieren.

loadReplace Optional

boolean. Ob die neue URL die alte URL in der Navigation des Tabs ersetzen soll, wie über die "Zurück"-Taste aufgerufen.

Beispielsweise, wenn der Benutzer einen neuen Tab mit Strg+T erstellt. Standardmäßig würde in Firefox "about:newtab" geladen. Wenn Ihre Erweiterung dann diese Seite mit tabs.update aktualisiert, ohne loadReplace, wird die "Zurück"-Taste aktiviert und führt den Benutzer zurück zu "about:newtab". Wenn die Erweiterung loadReplace setzt, wird die "Zurück"-Taste deaktiviert und es wäre so, als ob die von der Erweiterung angegebene URL die erste Seite wäre, die in diesem Tab besucht wurde.

Beachten Sie jedoch, dass die ursprüngliche URL immer noch in der globalen Verlaufshistorie des Browsers erscheint.

muted Optional

boolean. Ob der Tab stummgeschaltet werden soll.

openerTabId Optional

integer. Die ID des Tabs, der diesen Tab geöffnet hat. Wenn angegeben, muss der ursprüngliche Tab im selben Fenster wie dieser Tab sein. Auf -1 setzen, um die gesetzte openerTabId zu löschen.

pinned Optional

boolean. Ob der Tab angeheftet sein soll.

selected Veraltet Optional

boolean. Ob der Tab ausgewählt sein soll. Diese Eigenschaft wurde durch active und highlighted ersetzt.

successorTabId Optional

integer. Die ID des nachfolgenden Tabs.

url Optional

string. Eine URL, zu der der Tab navigiert werden soll.

Aus Sicherheitsgründen darf dies in Firefox keine privilegierte URL sein. Das Übergeben einer der folgenden URLs schlägt fehl, wobei runtime.lastError auf eine Fehlermeldung gesetzt wird:

  • chrome: URLs
  • javascript: URLs
  • data: URLs
  • file: URLs (d.h. Dateien im Dateisystem. Um eine Datei zu verwenden, die in der Erweiterung gepackt ist, siehe unten)
  • privilegierte about: URLs (zum Beispiel about:config, about:addons, about:debugging, about:newtab). Nicht-privilegierte URLs (z.B. about:blank) sind erlaubt.

Um eine Seite zu laden, die mit Ihrer Erweiterung verpackt ist, geben Sie eine absolute URL an, die bei der manifest.json-Datei der Erweiterung beginnt. Zum Beispiel: '/path/to/my-page.html'. Wenn Sie das führende '/' weglassen, wird die URL als relative URL behandelt, und verschiedene Browser können unterschiedliche absolute URLs konstruieren.

Rückgabewert

Ein Promise, das mit einem tabs.Tab-Objekt erfüllt wird, das Details über den aktualisierten Tab enthält. Das tabs.Tab-Objekt enthält nicht url, title und favIconUrl, es sei denn, passende Host-Berechtigungen oder die "tabs"-Berechtigung wurde angefordert. Wenn der Tab nicht gefunden werden konnte oder ein anderer Fehler auftritt, wird das Versprechen mit einer Fehlermeldung abgelehnt.

Beispiele

Navigieren Sie den aktiven Tab im aktuellen Fenster zu https://developer.mozilla.org:

js
function onUpdated(tab) {
  console.log(`Updated tab: ${tab.id}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

let updating = browser.tabs.update({ url: "https://developer.mozilla.org" });
updating.then(onUpdated, onError);

Aktivieren Sie den ersten Tab im aktuellen Fenster und navigieren Sie zu https://developer.mozilla.org:

js
function onUpdated(tab) {
  console.log(`Updated tab: ${tab.id}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

function updateFirstTab(tabs) {
  let updating = browser.tabs.update(tabs[0].id, {
    active: true,
    url: "https://developer.mozilla.org",
  });
  updating.then(onUpdated, onError);
}

let querying = browser.tabs.query({ currentWindow: true });
querying.then(updateFirstTab, onError);

Beispiel-Erweiterungen

Browser-Kompatibilität

BCD tables only load in the browser

Hinweis: Diese API basiert auf der chrome.tabs API von Chromium. Diese Dokumentation ist abgeleitet von tabs.json im Chromium-Code.