Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
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 listener für dieses Ereignis registriert ist. Gibt true zurück, wenn er zuhört, andernfalls false.

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 ein storage.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

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

Browser-Kompatibilität

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