storage
Ermöglicht Erweiterungen das Speichern und Abrufen von Daten sowie das Lauschen auf Änderungen an gespeicherten Elementen.
Das Speichersystem basiert auf der Web Storage API mit einigen Unterschieden. Zu den Unterschieden gehören unter anderem:
- Es ist asynchron.
- Werte sind auf die Erweiterung beschränkt, nicht auf eine spezifische Domain (d.h. derselbe Satz von Schlüssel/Wert-Paaren ist in allen Skripten im Hintergrundkontext und in Inhalts-Skripten verfügbar).
- Die gespeicherten Werte können beliebige JSON-ifizierbare Werte sein, nicht nur
String
. Das schließt unter anderemArray
undObject
ein, aber nur, wenn deren Inhalte als JSON dargestellt werden können, was DOM-Knoten nicht umfasst. Sie müssen Ihre Werte nicht in JSONStrings
umwandeln, bevor Sie sie speichern; sie werden jedoch intern als JSON dargestellt, was die Anforderung erklärt, dass sie JSON-ifizierbar sein müssen. - Mehrere Schlüssel/Wert-Paare können in einem einzigen API-Aufruf gesetzt oder abgerufen werden.
Um diese API zu nutzen, müssen Sie die "storage"
Berechtigung in Ihrer manifest.json
Datei aufnehmen.
Jede Erweiterung hat ihren eigenen Speicherbereich, der in verschiedene Speicherarten unterteilt werden kann.
Obwohl diese API ähnlich wie Window.localStorage
ist, wird empfohlen, Window.localStorage
nicht im Erweiterungscode zu verwenden, um erweiterungsbezogene Daten zu speichern. Firefox wird Daten, die von Erweiterungen unter Verwendung der localStorage-API gespeichert werden, in verschiedenen Szenarien löschen, in denen Benutzer ihren Browserverlauf und ihre Daten aus Datenschutzgründen löschen. Daten, die mit der storage.local
API gespeichert werden, werden in diesen Szenarien korrekt beibehalten.
Sie können die gespeicherten Daten unter dem Element Erweiterungsspeicher im Speicherinspektor Tab des Entwicklerwerkzeugkastens untersuchen, zugänglich über about:debugging
.
Hinweis: Der Speicherbereich ist nicht verschlüsselt und sollte nicht zur Speicherung 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
hat vier Eigenschaften, die die verschiedenen Arten verfügbarer Speicherbereiche repräsentieren.
storage.local
-
Repräsentiert den
local
Speicherbereich. Elemente imlocal
Speicher sind lokal auf dem Rechner, auf dem die Erweiterung installiert wurde. storage.managed
-
Repräsentiert den
managed
Speicherbereich. Elemente immanaged
Speicher werden vom Domain-Administrator gesetzt und sind für die Erweiterung schreibgeschützt. Ein 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, in denen der Benutzer angemeldet ist, geräteübergreifend verfügbar.
Ereignisse
storage.onChanged
-
Wird ausgelöst, wenn sich ein oder mehrere Elemente in einem der Speicherbereiche ändern.
Beispielerweiterungen
Browser-Kompatibilität
Hinweis:
Diese API basiert auf Chromiums chrome.storage
API. Diese Dokumentation stammt aus storage.json
im Chromium-Code.