tabs.onUpdated
Wird ausgelöst, wenn ein Tab aktualisiert wird.
Wenn der Benutzer in einem Tab zu einer neuen URL navigiert, generiert dies typischerweise mehrere onUpdated
Ereignisse, da verschiedene Eigenschaften des tabs.Tab
Objekts aktualisiert werden. Dies schließt die url
ein, aber auch möglicherweise die Eigenschaften title
und favIconUrl
. Die Eigenschaft status
wird zwischen "loading"
und "complete"
wechseln.
Dieses Ereignis wird auch für Änderungen an den Eigenschaften eines Tabs ausgelöst, die keine Navigation beinhalten, wie das Anheften und Lösen (was die Eigenschaft pinned
aktualisiert) sowie das Stummschalten oder Entstummschalten (was die Eigenschaften audible
und mutedInfo
aktualisiert).
Sie können dieses Ereignis filtern, sodass es nur für Tabs ausgelöst wird, deren URLs bestimmte Muster erfüllen, Ä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)
-
Beendet das Zuhören auf dieses Ereignis. Das Argument
listener
ist der zu entfernende Listener. hasListener(listener)
-
Überprüft, ob
listener
für dieses Ereignis registriert ist. Gibttrue
zurück, wenn es zuhört, andernfallsfalse
.
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 changeInfo Abschnitt für mehr Details. tab
-
tabs.Tab
. Der neue Zustand des Tabs.
filter
Optional-
object
. 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.urls
-
Array
. Ein Array von Muster-Übereinstimmungen. Löst das Ereignis nur für Tabs aus, deren aktuellesurl
-Eigenschaft mit einem der Muster übereinstimmt. properties
-
Array
. Ein Array von Zeichenfolgen, bestehend aus unterstützten Eigenschaftsnamen destabs.Tab
Objekts. Löst das Ereignis nur bei Ä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 "url" Wert wird seit Firefox 88 unterstützt. In Firefox 87 und früher können "url" Änderungen durch Filtern nach "status" beobachtet werden.
tabId
-
Integer
. Löst dieses Ereignis nur für den durch diese ID identifizierten Tab aus. windowId
-
Integer
. Löst dieses Ereignis nur für Tabs im durch diese ID identifizierten Fenster 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.
attention
Optional-
boolean
. Gibt an, ob der Tab Aufmerksamkeit erregt. Zum Beispiel istattention
true
, wenn der Tab einen modalen Dialog anzeigt. audible
Optional-
boolean
. Der neue hörbare Zustand des Tabs. autoDiscardable
Optional-
boolean
. Ob der Tab vom Browser aus dem Speicher entfernt werden kann. Der Standardwert isttrue
. Wenn auffalse
gesetzt, kann der Tab nicht automatisch vom Browser entfernt werden. Er kann jedoch durchtabs.discard
entfernt werden. discarded
Optional-
boolean
. Ob der Tab entfernt wurde. Ein entfernter Tab ist einer, dessen Inhalt aus dem Speicher entladen wurde, aber in der Tableiste sichtbar bleibt. Sein Inhalt wird beim nächsten Aktivieren neu geladen. favIconUrl
Optional-
string
. Die neue Favicon URL des Tabs. Nicht enthalten, wenn ein Tab sein Favicon verliert (wenn von einer Seite mit Favicon zu einer ohne gewechselt wird). Prüfen SiefavIconUrl
im tab statt. groupId
Optional-
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 Tabversteckt
ist. isArticle
Optional-
boolean
. Wahr, wenn der Tab ein Artikel ist und daher für die Anzeige im Reader-Modus geeignet ist. mutedInfo
Optional-
tabs.MutedInfo
. Der neue stumme Zustand des Tabs und der Grund für die Änderung. openerTabId
Optional-
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 gleichen Fenster ist. pinned
Optional-
boolean
. Der neue angeheftete Zustand des Tabs. status
Optional-
string
. Der Status des Tabs. Kann entweder loading oder complete sein. title
Optional-
string
. Der neue Titel des Tabs. url
Optional-
string
. Die URL des Tabs, falls sie sich geändert hat.
Beispiele
Lauschen 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);
Filter-Beispiele
Protokollieren Sie Änderungen nur für Tabs, deren url
-Eigenschaft durch https://developer.mozilla.org/*
oder https://mastodon.social/@mdn
gematcht wird:
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. 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 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
gematcht wird:
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 nur Änderungen, wenn sich die pinned
-Eigenschaft von Tabs ändert, deren url
-Eigenschaft durch https://developer.mozilla.org/*
oder https://mastodon.social/@mdn
gematcht wird und der Tab Teil des aktuellen Browserfensters 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
Hinweis:
Diese API basiert auf Chromiums chrome.tabs
API. Diese Dokumentation ist abgeleitet von tabs.json
im Chromium-Code.