Document: hasStorageAccess()-Methode

Baseline 2023

Newly available

Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die hasStorageAccess()-Methode der Document-Schnittstelle gibt ein Promise zurück, das mit einem booleschen Wert aufgelöst wird, der angibt, ob das Dokument Zugriff auf Third-Party- und nicht partitionierte Cookies hat.

Diese Methode ist Teil der Storage Access API.

Hinweis: Diese Methode ist ein anderer Name für Document.hasUnpartitionedCookieAccess(). Derzeit gibt es keine Pläne, diese Methode zugunsten von Document.hasUnpartitionedCookieAccess() zu entfernen.

Syntax

js
hasStorageAccess()

Parameter

Keine.

Rückgabewert

Ein Promise, das mit einem booleschen Wert aufgelöst wird, der angibt, ob das Dokument Zugriff auf Third-Party-Cookies hat — true, wenn es dies tut, und false, wenn nicht.

Das von dieser Methode zurückgegebene Ergebnis kann in einigen Fällen ungenau sein:

  1. Der Benutzer hat möglicherweise aktive Browsereinstellungen, die Third-Party-Cookies blockieren; in diesem Fall kann true zurückgegeben werden, obwohl Third-Party-Cookies weiterhin unzugänglich sind. Um eine solche Situation zu bewältigen, sollten Sie mögliche Fehler in der Art abfangen, dass Cookie-Werte nicht abgerufen werden können; informieren Sie beispielsweise den Nutzer, dass der Zugriff auf die personalisierten Einstellungen blockiert ist, und laden Sie ihn ein, sich erneut anzumelden, um sie zu nutzen.
  2. Der Browser blockiert möglicherweise standardmäßig keinen Zugriff auf Third-Party-Cookies; in diesem Fall kann false zurückgegeben werden, obwohl Third-Party-Cookies zugänglich sind und ein Speicherzugriff nicht angefordert werden muss (d.h. über Document.requestStorageAccess()). Um dieses Problem zu umgehen, könnten Sie Document.cookie abfragen, um herauszufinden, ob Ihre Cookies zugänglich sind, und Document.requestStorageAccess() aufrufen, wenn dies nicht der Fall ist.

Hinweis: Wenn das Promise aufgelöst wird und ein Benutzeraktionsevent bearbeitet wird, wenn die Funktion ursprünglich aufgerufen wurde, wird der Resolve-Handler so ausgeführt, als ob ein Benutzeraktionsevent verarbeitet wird. Somit können APIs aufgerufen werden, die eine Benutzeraktivierung erfordern.

Ausnahmen

InvalidStateError DOMException

Wird ausgelöst, wenn das aktuelle Document noch nicht aktiv ist.

Beispiele

js
document.hasStorageAccess().then((hasAccess) => {
  if (hasAccess) {
    // storage access has been granted already.
    console.log("cookie access granted");
  } else {
    // storage access hasn't been granted already;
    // you may want to call requestStorageAccess().
    console.log("cookie access denied");
  }
});

Hinweis: Siehe Verwenden der Storage Access API für ein vollständigeres Beispiel.

Spezifikationen

Specification
The Storage Access API
# dom-document-hasstorageaccess

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch