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 und Object, aber nur, wenn deren Inhalte als JSON darstellbar sind, was DOM-Knoten nicht einschließt. Sie müssen Ihre Werte nicht in JSON Strings 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 im local Speicher sind lokal für das Gerät, auf dem die Erweiterung installiert wurde.

storage.managed

Repräsentiert den managed Speicherbereich. Elemente im managed 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 im session Speicher werden im Speicher gespeichert und nicht auf die Festplatte geschrieben.

storage.sync

Repräsentiert den sync Speicherbereich. Elemente im sync 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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
storage
StorageArea
StorageArea.clear
StorageArea.get
Supports empty key
StorageArea.getBytesInUse
StorageArea.onChanged
StorageArea.remove
Supports empty key
StorageArea.set
StorageArea.setAccessLevel
StorageChange
local
local.clear
local.get
Supports empty key
local.getBytesInUse
local.onChanged
local.remove
Supports empty key
local.set
managed
managed.clear
managed.get
managed.getBytesInUse
managed.onChanged
managed.remove
managed.set
onChanged
session
session.QUOTA_BYTES
session.clear
session.get
Supports empty key
session.getBytesInUse
session.onChanged
session.remove
Supports empty key
session.set
session.setAccessLevel
sync
sync.clear
sync.get
Supports empty key
sync.getBytesInUse
sync.onChanged
sync.remove
Supports empty key
sync.set

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
See implementation notes.

Beispielerweiterungen

Hinweis: Diese API basiert auf Chromium's chrome.storage API. Diese Dokumentation stammt aus storage.json im Chromium-Code.