Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
tabs.onUpdated
Wird ausgelöst, wenn ein Tab aktualisiert wird.
Wenn der Benutzer in einem Tab zu einer neuen URL navigiert, generiert dies typischerweise mehrereonUpdated-Ereignisse, da verschiedene Eigenschaften destabs.Tab-Objekts aktualisiert werden. Dazu gehört dieurl, aber potenziell auch die Eigenschaftentitle undfavIconUrl. Die Eigenschaftstatus wechselt zwischen"loading" und"complete".
Dieses Ereignis wird auch bei Änderungen an den Eigenschaften eines Tabs ausgelöst, die keine Navigation beinhalten, wie das Anheften und Lösen (was die Eigenschaftpinned aktualisiert) und das Stummschalten oder Aufheben der Stummschaltung (was die Eigenschaftenaudible undmutedInfo aktualisiert).
Sie können dieses Ereignis filtern, sodass es nur für Tabs ausgelöst wird, deren URLs bestimmtenMustern entsprechen, Änderungen an bestimmten Eigenschaften, Änderungen an einem Tab oder Fenster oder jede Kombination dieser Einschränkungen.
In diesem Artikel
Syntax
browser.tabs.onUpdated.addListener( listener, // function filter // optional object)browser.tabs.onUpdated.removeListener(listener)browser.tabs.onUpdated.hasListener(listener)Ereignisse haben drei Funktionen:
addListener(callback, filter)Fügt diesem Ereignis einen Listener hinzu.
removeListener(listener)Beendet das Lauschen auf dieses Ereignis. Das Argument
listenerist der zu entfernende Listener.hasListener(listener)Überprüft, ob
listenerfür dieses Ereignis registriert ist. Gibttruezurück, wenn es lauscht, andernfallsfalse.
addListener Syntax
>Parameter
listenerDie Funktion, die aufgerufen wird, wenn dieses Ereignis auftritt. Der Funktion werden diese Argumente übergeben:
tabIdinteger. Die ID des aktualisierten Tabs.changeInfoobject. Eigenschaften des Tabs, die sich geändert haben. Weitere Einzelheiten finden Sie im AbschnittchangeInfo.tabtabs.Tab. Der neue Zustand des Tabs.
filterOptionalobject. Eine Reihe von Filtern, die die an diesen Listener gesendeten Ereignisse einschränken. Dieses Objekt kann eine oder mehrere dieser Eigenschaften haben. Ereignisse werden nur gesendet, wenn sie alle angegebenen Filter erfüllen.urlsArray. Ein Array vonMusterübereinstimmungen. Löst das Ereignis nur für Tabs aus, deren aktuelleurl-Eigenschaft einem der Muster entspricht.propertiesArray. Ein Array von Zeichenfolgen, das unterstützte Eigenschaftsnamen vontabs.Tab-Objekten enthält. Löst das Ereignis nur bei Änderungen einer der im Array benannten Eigenschaften aus. Diese Eigenschaften können verwendet werden:- "attention"
- "autoDiscardable"
- "audible"
- "discarded"
- "favIconUrl"
- "groupId"
- "hidden"
- "isArticle"
- "mutedInfo"
- "openerTabId"
- "pinned"
- "status"
- "title"
- "url"
Hinweis:Der Wert "url" wird seit Firefox 88 unterstützt. In Firefox 87 und früher können
url-Änderungen durch Filtern nachstatusbeobachtet werden.tabIdInteger. Löst dieses Ereignis nur für den Tab aus, der durch diese ID identifiziert wird.windowIdInteger. Löst dieses Ereignis nur für Tabs im durch diese ID identifizierten Fenster aus.cookieStoreIdInteger. Löst dieses Ereignis nur für Tabs im durch diese ID identifizierten Cookie-Store aus.
Zusätzliche Objekte
>changeInfo
Listet die Änderungen am Zustand des aktualisierten Tabs auf. Um mehr über diese Eigenschaften zu erfahren, lesen Sie die Dokumentation zutabs.Tab. Beachten Sie, dass nicht alle Eigenschaften vontabs.Tab unterstützt werden.
attentionOptionalboolean. Gibt an, ob der Tab Aufmerksamkeit erregt. Zum Beispiel istattentiontrue, wenn der Tab einen modalen Dialog anzeigt.audibleOptionalboolean. Der neue hörbare Zustand des Tabs.autoDiscardableOptionalboolean. Ob der Tab vom Browser verworfen werden kann. Der Standardwert isttrue. Wennfalsegesetzt ist, kann der Browser den Tab nicht automatisch verwerfen. Der Tab kann jedoch durchtabs.discardverworfen werden.discardedOptionalboolean. Ob der Tab verworfen ist. Ein verworfener Tab ist einer, dessen Inhalt aus dem Speicher entladen wurde, aber im Tab-Bereich sichtbar ist. Sein Inhalt wird beim nächsten Aktivieren neu geladen.favIconUrlOptionalstring. Die neue Favicon-URL des Tabs. Wird nicht eingeschlossen, wenn ein Tab sein Favicon verliert (von einer Seite mit Favicon zu einer Seite ohne Favicon navigiert). Überprüfen SiefavIconUrlimtab stattdessen.groupIdOptionalinteger. Die ID der Gruppe, in der sich die Tabs befinden, oder-1(tabGroups.TAB_GROUP_ID_NONE) für nicht gruppierte Tabs.hiddenOptionalboolean. Wahr, wenn der Tabhiddenist.isArticleOptionalboolean. Wahr, wenn der Tab ein Artikel ist und daher für die Anzeige imReader-Modus geeignet ist.mutedInfoOptionaltabs.MutedInfo. Der neue Stummschaltezustand des Tabs und der Grund für die Änderung.openerTabIdOptionalinteger. Die ID des Tabs, der diesen Tab geöffnet hat, falls vorhanden. Diese Eigenschaft ist nur vorhanden, wenn der eröffnende Tab existiert und sich im gleichen Fenster befindet.pinnedOptionalboolean. Der neue angeheftete Zustand des Tabs.statusOptionalstring. Der Status des Tabs. Kann entwederloading odercomplete sein.titleOptionalstring. Der neue Titel des Tabs.urlOptionalstring. Die URL des Tabs, falls sie sich geändert hat.
Beispiele
Hören Sie auf und protokollieren Sie alle Änderungsinformationen und den neuen Zustand:
function handleUpdated(tabId, changeInfo, tabInfo) { console.log(`Updated tab: ${tabId}`); console.log("Changed attributes: ", changeInfo); console.log("New tab Info: ", tabInfo);}browser.tabs.onUpdated.addListener(handleUpdated);Protokollieren Sie Änderungen an URLs:
function handleUpdated(tabId, changeInfo, tabInfo) { if (changeInfo.url) { console.log(`Tab: ${tabId} URL changed to ${changeInfo.url}`); }}browser.tabs.onUpdated.addListener(handleUpdated);Filterbeispiele
Protokollieren Sie Änderungen nur für Tabs, derenurl-Eigenschaft mithttps://developer.mozilla.org/* oderhttps://mastodon.social/@mdnübereinstimmt:
const pattern1 = "https://developer.mozilla.org/*";const pattern2 = "https://mastodon.social/@mdn";const filter = { urls: [pattern1, pattern2],};function handleUpdated(tabId, changeInfo, tabInfo) { console.log(`Updated tab: ${tabId}`); console.log("Changed attributes: ", changeInfo); console.log("New tab Info: ", tabInfo);}browser.tabs.onUpdated.addListener(handleUpdated, filter);Protokollieren Sie Änderungen nur an derpinned-Eigenschaft von Tabs (d.h. Anheft- und Lösaktionen):
const filter = { properties: ["pinned"],};function handleUpdated(tabId, changeInfo, tabInfo) { console.log(`Updated tab: ${tabId}`); console.log("Changed attributes: ", changeInfo); console.log("New tab Info: ", tabInfo);}browser.tabs.onUpdated.addListener(handleUpdated, filter);Kombinieren Sie beide vorangehenden Filter, protokollieren Sie nur, wenn diepinned-Eigenschaft von Tabs geändert wird, derenurl-Eigenschaft mithttps://developer.mozilla.org/* oderhttps://mastodon.social/@mdnübereinstimmt:
const pattern1 = "https://developer.mozilla.org/*";const pattern2 = "https://mastodon.social/@mdn";const filter = { urls: [pattern1, pattern2], properties: ["pinned"],};function handleUpdated(tabId, changeInfo, tabInfo) { console.log(`Updated tab: ${tabId}`); console.log("Changed attributes: ", changeInfo); console.log("New tab Info: ", tabInfo);}browser.tabs.onUpdated.addListener(handleUpdated, filter);Protokollieren Sie Änderungen nur, wenn sich diepinned-Eigenschaft von Tabs ändert, derenurl-Eigenschaft mithttps://developer.mozilla.org/* oderhttps://mastodon.social/@mdnübereinstimmt, wobei sich der Tab im aktuellen Browserfenster befand, als das Aktualisierungsereignis ausgelöst wurde:
const pattern1 = "https://developer.mozilla.org/*";const pattern2 = "https://mastodon.social/@mdn";const filter = { urls: [pattern1, pattern2], properties: ["pinned"], windowId: browser.windows.WINDOW_ID_CURRENT,};function handleUpdated(tabId, changeInfo, tabInfo) { console.log(`Updated tab: ${tabId}`); console.log("Changed attributes: ", changeInfo); console.log("New tab Info: ", tabInfo);}browser.tabs.onUpdated.addListener(handleUpdated, filter);Beispielerweiterungen
Browser-Kompatibilität
Hinweis:Diese API basiert auf derchrome.tabs-API von Chromium. Diese Dokumentation stammt austabs.json im Chromium-Code.