storage.onChanged
Wird ausgelöst, wenn sich ein oder mehrere Elemente in einem der Speicherbereiche ändern.
Wenn Sie nur Änderungen in einem Speicherbereich überwachen müssen, verwenden Sie stattdessen storage.StorageArea.onChanged.
Wird ausgelöst, wenn storageArea.set, storageArea.remove oder storageArea.clear in einem der Speicherbereiche ausgeführt wird.
Hinweis:
In Firefox empfängt der Listener alle Schlüssel aus einem Speicherbereich, in dem storageArea.set ausgeführt wird. Der Listener kann aufgerufen werden, auch wenn keine Änderung der Daten vorliegt. Um Details zu den geänderten Elementen zu finden, prüfen Sie das storage.StorageChange-Objekt jedes Schlüssels. Siehe Firefox-Bug 1833153.
Hinweis:
Firefox löst dieses Ereignis nicht aus für Änderungen an storage.managed, da verwalteter Speicher nur beim Browserstart gelesen wird (aus der JSON-Manifestsdatei (natürliches Manifest) oder 3rdparty Unternehmensrichtlinie).
Syntax
browser.storage.onChanged.addListener(listener)
browser.storage.onChanged.removeListener(listener)
browser.storage.onChanged.hasListener(listener)
Ereignisse haben drei Funktionen:
addListener(listener)-
Fügt diesem Ereignis einen Listener hinzu.
removeListener(listener)-
Beendet das Überwachen dieses Ereignisses. Das
listener-Argument ist der zu entfernende Listener. hasListener(listener)-
Überprüft, ob
listenerfür dieses Ereignis registriert ist. Gibttruezurück, wenn er zuhört, andernfallsfalse.
addListener-Syntax
>Parameter
listener-
Die Funktion, die aufgerufen wird, wenn dieses Ereignis eintritt. Der Funktion werden diese Argumente übergeben:
changes-
object. Objekt, das die Änderung beschreibt. Der Name jeder Eigenschaft ist der Name jedes Schlüssels. Der Wert jedes Schlüssels ist einstorage.StorageChange-Objekt, das die Änderung an diesem Element beschreibt. areaName-
string. Der Name des Speicherbereichs ("local","managed","session", oder"sync"), in dem die Änderungen vorgenommen wurden.
Beispiele
/*
Log the storage area that changed,
then for each item changed,
log its old value and its new value.
*/
function logStorageChange(changes, area) {
console.log(`Change in storage area: ${area}`);
const changedItems = Object.keys(changes);
for (const item of changedItems) {
console.log(`${item} has changed:`);
console.log("Old value: ", changes[item].oldValue);
console.log("New value: ", changes[item].newValue);
}
}
browser.storage.onChanged.addListener(logStorageChange);
Beispielerweiterungen
Browser-Kompatibilität
Hinweis:
Diese API basiert auf Chromiums chrome.storage API. Diese Dokumentation ist abgeleitet von storage.json im Chromium-Code.