tabs.onUpdated
Ausgelöst, wenn ein Tab aktualisiert wird.
Wenn der Benutzer in einem Tab zu einer neuen URL navigiert, werden typischerweise mehrere onUpdated-Ereignisse generiert, da verschiedene Eigenschaften des tabs.Tab Objekts aktualisiert werden. Dies umfasst die url, aber möglicherweise auch die title und favIconUrl Eigenschaften. Die status-Eigenschaft wechselt zwischen "loading" und "complete".
Dieses Ereignis wird auch ausgelöst bei Änderungen an den Eigenschaften eines Tabs, die nicht mit der Navigation verbunden sind, wie das Anheften und Lösen (was die pinned-Eigenschaft aktualisiert) und das Stummschalten oder Wiederherstellen (was die audible und mutedInfo Eigenschaften aktualisiert).
Sie können dieses Ereignis filtern, so dass es nur für Tabs ausgelöst wird, deren URLs bestimmten Mustern entsprechen, Ä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 einen Listener zu diesem Ereignis hinzu.
removeListener(listener)-
Stoppt das Lauschen auf dieses Ereignis. Das
listener-Argument ist der Listener, der entfernt werden soll. hasListener(listener)-
Prüfen, ob
listenerfür dieses Ereignis registriert ist. Gibttruezurück, wenn es lauscht,false, andernfalls.
addListener syntax
>Parameter
listener-
Die Funktion, die aufgerufen wird, wenn dieses Ereignis auftritt. Der Funktion werden diese Argumente übergeben:
tabId-
integer. Die ID des aktualisierten Tabs. changeInfo-
object. Eigenschaften des Tabs, die sich geändert haben. Siehe den Abschnitt changeInfo für mehr Details. tab-
tabs.Tab. Der neue Zustand des Tabs.
filterOptional-
object. Ein Satz von Filtern, die die an diesen Listener gesendeten Ereignisse einschränken. Dieses Objekt kann eine oder mehrere dieser Eigenschaften enthalten. Ereignisse werden nur gesendet, wenn sie alle bereitgestellten Filter erfüllen.urls-
Array. Ein Array von Abgleichsmustern. Löst das Ereignis nur für Tabs aus, deren aktuelleurl-Eigenschaft mit einem der Muster übereinstimmt. properties-
Array. Ein Array von Zeichenketten, das unterstütztetabs.TabEigenschaftsnamen enthält. Löst das Ereignis nur für Änderungen an einer der im Array genannten 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 beobachtet werden, indem nach "status" gefiltert wird.
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 aus, das durch diese ID identifiziert wird. -
Integer. Löst dieses Ereignis nur für Tabs im Cookie-Store aus, der durch diese ID identifiziert wird.
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. Zum Beispiel 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. Der Tab kann jedoch durchtabs.discardverworfen werden. discardedOptional-
boolean. Ob der Tab verworfen ist. Ein verworfener Tab ist einer, dessen Inhalt aus dem Speicher entladen wurde, aber in der Tab-Leiste sichtbar ist. Sein Inhalt wird beim nächsten Aktivieren neu geladen. favIconUrlOptional-
string. Die neue Favicon-URL des Tabs. Wird nicht einbezogen, wenn ein Tab sein Favicon verliert (von einer Seite mit Favicon zu einer Seite ohne wechseln). Überprüfen SiefavIconUrlim tab stattdessen. groupIdOptional-
integer. Die ID der Gruppe, in der die Tabs sind, oder-1(tabGroups.TAB_GROUP_ID_NONE) für ungegruppierte Tabs. -
boolean. Wahr, wenn der Tabverstecktist. isArticleOptional-
boolean. Wahr, wenn der Tab ein Artikel ist und daher für die Anzeige im Reader Mode 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 im selben Fenster ist. pinnedOptional-
boolean. Der neue angeheftete Zustand des Tabs. 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 und Protokollieren aller Änderungsinformationen und des neuen Zustands:
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 von Ä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);
Filterungsbeispiele
Protokollieren von Ä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 von Änderungen nur an der pinned-Eigenschaft von Tabs (d.h. Anheften und Lösen):
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 beider vorherigen Filter, Protokollieren nur, wenn sich die pinned-Eigenschaft von Tabs ändert 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],
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 von Änderungen nur, wenn sich die pinned-Eigenschaft von Tabs ändert für Tabs, deren url-Eigenschaft durch https://developer.mozilla.org/* oder https://mastodon.social/@mdn übereinstimmt, wobei der Tab Teil des aktuellen Browser-Fensters war, als das Update-Ereignis 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
Loading…
Hinweis:
Diese API basiert auf Chromium's chrome.tabs API. Diese Dokumentation ist abgeleitet von tabs.json im Chromium-Code.