storage
Ermöglicht es Erweiterungen, Daten zu speichern und abzurufen sowie Änderungen an gespeicherten Elementen zu überwachen.
Das Speichersystem basiert auf der Web Storage API, weist jedoch einige Unterschiede auf. Unter anderem:
- Es ist asynchron.
- Werte sind auf die Erweiterung beschränkt, nicht auf eine spezifische Domäne (d. h. dasselbe Set von Schlüssel/Wert-Paaren ist für alle Skripte im Hintergrundkontext und in Inhalts-Skripten verfügbar).
- Die gespeicherten Werte können beliebige JSON-fähige Werte sein, nicht nur
String
. Dazu gehören unter anderem:Array
undObject
, aber nur, wenn deren Inhalte als JSON darstellbar sind, was DOM-Knoten nicht einschließt. Sie müssen Ihre Werte nicht in JSONStrings
umwandeln, bevor Sie sie speichern, aber intern werden sie als JSON dargestellt, daher die Anforderung, dass sie JSON-fähig sein müssen. - Mehrere Schlüssel/Wert-Paare können in demselben API-Aufruf gesetzt oder abgerufen werden.
Um diese API zu verwenden, müssen Sie die Berechtigung "storage"
in Ihrer manifest.json
Datei einfügen.
Jede Erweiterung verfügt über ihren eigenen Speicherbereich, der in verschiedene Speicherarten aufgeteilt werden kann.
Obwohl diese API ähnlich wie Window.localStorage
ist, wird empfohlen, Window.localStorage
nicht im Erweiterungscode zum Speichern von erweiterungsbezogenen Daten zu verwenden. Firefox löscht Daten, die von Erweiterungen mit der localStorage API gespeichert wurden, in verschiedenen Szenarien, in denen Benutzer ihren Browserverlauf und ihre Daten aus Datenschutzgründen löschen, während Daten, die mit der storage.local
API gespeichert wurden, in diesen Szenarien korrekt erhalten bleiben.
Sie können die gespeicherten Daten unter dem Element Erweiterungsspeicher im Storage Inspector-Tab der Entwicklertools untersuchen, erreichbar über about:debugging
.
Hinweis: Der Speicherbereich ist nicht verschlüsselt und sollte nicht zum Speichern vertraulicher Benutzerinformationen verwendet werden.
Typen
storage.StorageArea
-
Ein Objekt, das einen Speicherbereich repräsentiert.
storage.StorageChange
-
Ein Objekt, das eine Änderung in einem Speicherbereich repräsentiert.
Eigenschaften
storage
besitzt vier Eigenschaften, die die verschiedenen verfügbaren Speicherbereiche repräsentieren.
storage.local
-
Repräsentiert den
local
Speicherbereich. Elemente imlocal
Speicher sind lokal für das Gerät, auf dem die Erweiterung installiert wurde. storage.managed
-
Repräsentiert den
managed
Speicherbereich. Elemente immanaged
Speicher werden vom Domänenadministrator festgelegt und sind für die Erweiterung schreibgeschützt. Der Versuch, diesen Namensraum zu ändern, führt zu einem Fehler. storage.session
-
Repräsentiert den
session
Speicherbereich. Elemente imsession
Speicher werden im Speicher gespeichert und nicht auf die Festplatte geschrieben. storage.sync
-
Repräsentiert den
sync
Speicherbereich. Elemente imsync
Speicher werden vom Browser synchronisiert und sind über alle Instanzen dieses Browsers, bei denen der Benutzer angemeldet ist, auf unterschiedlichen Geräten verfügbar.
Ereignisse
storage.onChanged
-
Wird ausgelöst, wenn sich ein oder mehrere Elemente in einem der Speicherbereiche ändern.
Browser-Kompatibilität
BCD tables only load in the browser
Beispiel-Erweiterungen
Hinweis: Diese API basiert auf Chromium's chrome.storage
API. Diese Dokumentation stammt aus storage.json
im Chromium-Code.