storage.onChanged

Wird ausgelöst, wenn storageArea.set, storageArea.remove, oder storageArea.clear in einem Speicherbereich ausgeführt wird und Details nur der geänderten Schlüssel zurückgegeben werden. Ein Callback wird nur aufgerufen, wenn es Änderungen an den zugrunde liegenden Daten gibt.

Hinweis: In Firefox umfasst die zurückgegebene Information alle Schlüssel innerhalb des Speicherbereichs, gegen den storageArea.set ausgeführt wurde, unabhängig davon, ob sie sich geändert haben oder nicht. Auch kann ein Callback aufgerufen werden, wenn es keine Änderung an den zugrunde liegenden Daten gibt. Details der geänderten Elemente finden Sie, indem Sie das storage.StorageChange-Objekt jedes zurückgegebenen Schlüssels untersuchen. Siehe Firefox Fehler 1833153.

Syntax

js
browser.storage.onChanged.addListener(listener)
browser.storage.onChanged.removeListener(listener)
browser.storage.onChanged.hasListener(listener)

Ereignisse haben drei Funktionen:

addListener(listener)

Fügt einen Listener zu diesem Ereignis hinzu.

removeListener(listener)

Stoppt 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. Gibt true zurück, wenn es zuhört, andernfalls false.

addListener Syntax

Parameter

listener

Die Funktion, die aufgerufen wird, wenn dieses Ereignis eintritt. Der Funktion werden folgende 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 ein storage.StorageChange-Objekt, das die Änderung dieses Elements beschreibt.

areaName

string. Der Name des Speicherbereichs ("sync", "local", oder "managed"), in dem die Änderungen vorgenommen wurden.

Browser-Kompatibilität

Beispiele

js
/*
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

Hinweis: Diese API basiert auf der chrome.storage API von Chromium. Diese Dokumentation ist abgeleitet von storage.json im Chromium-Code.