storage.StorageArea.onChanged
Wird ausgelöst, wenn sich ein oder mehrere Einträge in einem Speicherbereich ändern, und gibt Details zu den geänderten Schlüsseln zurück. Im Vergleich zu storage.onChanged
ermöglicht dieses Ereignis das Abhören von Änderungen in einem der Speicherbereiche: local
, managed
, session
und sync
.
Hinweis:
In Firefox enthält die zurückgegebene Information alle Schlüssel innerhalb des Speicherbereichs. Außerdem kann der Rückruf aufgerufen werden, wenn es keine Änderung an den zugrunde liegenden Daten gibt. Details zu den geänderten Elementen finden Sie, indem Sie jedes zurückgegebene storage.StorageChange
Objekt des Schlüssels untersuchen. Siehe Firefox bug 1833153.
Syntax
// local can also be sync, managed, or session
browser.storage.local.onChanged.addListener(listener)
browser.storage.local.onChanged.removeListener(listener)
browser.storage.local.onChanged.hasListener(listener)
Ereignisse haben drei Funktionen:
addListener(listener)
-
Fügt diesem Ereignis einen Listener hinzu.
removeListener(listener)
-
Beendet das Lauschen 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 lauscht, andernfallsfalse
.
Syntax von addListener
Parameter
listener
-
Die Funktion, die aufgerufen wird, wenn dieses Ereignis eintritt. Der Funktion wird dieses Argument übergeben:
changes
-
object
. Objekt, das die Änderung beschreibt. Dieses enthält eine Eigenschaft für jeden geänderten Schlüssel. Der Eigenschaftsname ist der Name des geänderten Schlüssels und sein Wert ist einstorage.StorageChange
Objekt, das die Änderung an diesem Element beschreibt.
Beispiele
/*
Log the old value and its new value of
changes in the local storage.
*/
function logStorageChange(changes) {
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.local.onChanged.addListener(logStorageChange);
Browser-Kompatibilität
BCD tables only load in the browser
Hinweis:
Diese API basiert auf der chrome.storage
API von Chromium. Diese Dokumentation ist abgeleitet von storage.json
im Chromium-Code.