storage.StorageArea.onChanged
Wird ausgelöst, wenn sich ein oder mehrere Elemente in einem Speicherbereich ändern, und gibt Details für die geänderten Schlüssel zurück. Im Vergleich zu storage.onChanged
ermöglicht Ihnen dieses Ereignis, Änderungen in einem der Speicherbereiche zu überwachen: local
, managed
, session
und sync
.
Hinweis:
In Firefox enthält die zurückgegebene Information alle Schlüssel im Speicherbereich. Außerdem kann der Rückruf ausgelöst werden, wenn es keine Änderung an den zugrunde liegenden Daten gibt. Details zu den geänderten Elementen finden Sie, indem Sie das storage.StorageChange
-Objekt jedes zurückgegebenen Schlüssels untersuchen. Siehe Firefox-Fehler 1833153.
Firefox lädt Änderungen an verwalteten Speichern (aus der JSON-Manifestdatei (natives Manifest) oder 3rdparty
Unternehmensrichtlinie) nur beim Neustart. Daher wird dieses Ereignis in Firefox nie ausgelöst.
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)
-
Stoppt das Hören auf dieses Ereignis. Das
listener
-Argument 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 eintritt. Der Funktion wird folgendes Argument übergeben:
changes
-
object
. Objekt, das die Änderung beschreibt. Dies 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 dieses Elements 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
Hinweis:
Diese API basiert auf Chromiums chrome.storage
-API. Diese Dokumentation ist abgeleitet von storage.json
im Chromium-Code.