tabs.onUpdated
Wird ausgelöst, wenn ein Tab aktualisiert wird.
Wenn der Benutzer zu einer neuen URL in einem Tab navigiert, werden typischerweise mehrere onUpdated-Ereignisse generiert, da verschiedene Eigenschaften des tabs.Tab-Objekts aktualisiert werden. Dies schließt die url ein, aber auch potenziell die title- und favIconUrl-Eigenschaften. Die status-Eigenschaft durchläuft die Zustände "loading" und "complete".
Dieses Ereignis wird auch für Änderungen an den Eigenschaften eines Tabs ausgelöst, die keine Navigation beinhalten, wie etwa das Anpinnen und Lösen eines Pins (was die pinned-Eigenschaft aktualisiert) sowie das Stummschalten oder Aufheben der Stummschaltung (was die Eigenschaften audible und mutedInfo aktualisiert).
Sie können dieses Ereignis filtern, sodass es nur für Tabs ausgelöst wird, deren URLs bestimmten Mustern entsprechen, für Änderungen an bestimmten Eigenschaften, Änderungen an einem Tab oder Fenster oder jede Kombination dieser Einschränkungen.
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)-
Stoppt das Lauschen auf dieses Ereignis. Das Argument
listenerist der Listener, der entfernt werden soll. hasListener(listener)-
Überprüft, ob
listenerfür dieses Ereignis registriert ist. Gibttruezurück, wenn es lauscht, ansonstenfalse.
addListener Syntax
>Parameter
listener-
Die Funktion, die aufgerufen wird, wenn dieses Ereignis eintritt. Der Funktion werden diese Argumente übergeben:
tabId-
integer. Die ID des aktualisierten Tabs. changeInfo-
object. Die Eigenschaften des Tabs, die sich geändert haben. Siehe den Abschnitt changeInfo für weitere Details. tab-
tabs.Tab. Der neue Zustand des Tabs.
filterOptional-
object. Eine Menge von Filtern, die die Ereignisse einschränken, die an diesen Listener gesendet werden. Dieses Objekt kann eine oder mehrere dieser Eigenschaften haben. Ereignisse werden nur gesendet, wenn alle bereitgestellten Filter erfüllt sind.urls-
Array. Ein Array von Übereinstimmungsmustern. Löst das Ereignis nur für Tabs aus, deren aktuelleurl-Eigenschaft einem der Muster entspricht. properties-
Array. Ein Array von Strings, bestehend aus unterstütztentabs.Tab-Objekteigenschaftsnamen. Löst das Ereignis nur für Änderungen an einem der in dem Array benannten Eigenschaften aus. Diese Eigenschaften können verwendet werden:- "attention"
- "autoDiscardable"
- "audible"
- "discarded"
- "favIconUrl"
- "groupId"
- "hidden"
- "isArticle"
- "mutedInfo"
- "openerTabId"
- "pinned"
- "splitViewId"
- "status"
- "title"
- "url"
Hinweis: Der Wert "url" wird seit Firefox 88 unterstützt. In Firefox 87 und früher können "url"-Änderungen durch Filterung nach "status" beobachtet werden.
tabId-
Integer. Löst dieses Ereignis nur für den Tab aus, der durch diese ID identifiziert wird. windowId-
Integer. Löst dieses Ereignis nur für Tabs im Fenster mit dieser ID aus. -
Integer. Löst dieses Ereignis nur für Tabs im Cookie-Speicher mit dieser ID aus.
Zusätzliche Objekte
>changeInfo
Listet die Änderungen am Zustand des aktualisierten Tabs auf. Um mehr über diese Eigenschaften zu erfahren, siehe die tabs.Tab-Dokumentation. Beachten Sie, dass nicht alle tabs.Tab-Eigenschaften unterstützt werden.
attentionOptional-
boolean. Gibt an, ob der Tab Aufmerksamkeit erregt. Beispielsweise istattentiontrue, wenn der Tab einen modalen Dialog anzeigt. audibleOptional-
boolean. Der neue hörbare Zustand des Tabs. autoDiscardableOptional-
boolean. Ob der Tab vom Browser verworfen werden kann. Der Standardwert isttrue. Wenn auffalsegesetzt, kann der Browser den Tab nicht automatisch verwerfen. Er kann jedoch manuell durchtabs.discardverworfen werden. discardedOptional-
boolean. Ob der Tab verworfen ist. Ein verworfener Tab ist einer, dessen Inhalt aus dem Speicher entladen wurde, aber im Tabstreifen sichtbar bleibt. Sein Inhalt wird erneut geladen, wenn er das nächste Mal aktiviert wird. favIconUrlOptional-
string. Die neue Favicon-URL des Tabs. Nicht enthalten, wenn ein Tab sein Favicon verliert (z. B. beim Navigieren von einer Seite mit einem Favicon zu einer ohne Favicon). Prüfen SiefavIconUrlin tab stattdessen. groupIdOptional-
integer. Die ID der Gruppe, in der sich die Tabs befinden, oder-1(tabGroups.TAB_GROUP_ID_NONE) für nicht gruppierte Tabs. -
boolean. Wahr, wenn der Tabverstecktist. isArticleOptional-
boolean. Wahr, wenn der Tab ein Artikel ist und daher für die Anzeige im Reader-Modus geeignet ist. mutedInfoOptional-
tabs.MutedInfo. Der neue stummgeschaltete Zustand des Tabs und der Grund für die Änderung. openerTabIdOptional-
integer. Die ID des Tabs, der diesen Tab geöffnet hat, falls vorhanden. Diese Eigenschaft ist nur vorhanden, wenn der öffnende Tab existiert und sich im gleichen Fenster befindet. pinnedOptional-
boolean. Der neue angepinnte Zustand des Tabs. splitViewIdOptional-
integer. Die ID der geteilten Ansicht, zu der der Tab gehört. Wird auftabs.SPLIT_VIEW_ID_NONEgesetzt, wenn der Tab keiner geteilten Ansicht angehört. statusOptional-
string. Der Status des Tabs. Kann entweder loading oder complete sein. titleOptional-
string. Der neue Titel des Tabs. urlOptional-
string. Die URL des Tabs, falls sie sich geändert hat.
Beispiele
Lauschen 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, deren url-Eigenschaft durch https://developer.mozilla.org/* oder https://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 der pinned-Eigenschaft von Tabs (d.h. Pin- und Unpin-Aktionen):
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 vorherigen Filter, protokollieren Sie nur, wenn sich die pinned-Eigenschaft von Tabs ändert, deren url-Eigenschaft durch https://developer.mozilla.org/* oder https://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 die pinned-Eigenschaft von Tabs ändert, deren url-Eigenschaft durch https://developer.mozilla.org/* oder https://mastodon.social/@mdn übereinstimmt, wobei der Tab zum Zeitpunkt des Aktualisierungsereignisses Teil des aktuellen Browser-Fensters war:
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 Chromiums chrome.tabs API. Diese Dokumentation ist von tabs.json im Chromium-Code abgeleitet.