Start · Sprachen · JavaScript · Referenz · Navigator.cookieEnabled

Navigator.cookieEnabled

Eigenschaft

Schreibgeschützte Eigenschaft, die mit einem booleschen Wert angibt, ob der Browser für das aktuelle Dokument Cookies grundsätzlich zulässt.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

Navigator.cookieEnabled

Beschreibung

navigator.cookieEnabled ist eine schreibgeschützte Eigenschaft des Navigator-Objekts. Sie liefert true, wenn der Browser Cookies grundsätzlich erlaubt, und false, wenn der Nutzer oder eine Richtlinie Cookies deaktiviert hat.

Typischerweise prüft man die Eigenschaft vor einem Login, vor dem Speichern einer Sitzung oder vor dem Setzen von Einstellungs-Cookies. So kann man dem Nutzer rechtzeitig einen verständlichen Hinweis anzeigen, statt dass die Anwendung ohne Meldung versagt, etwa bei einer Anmeldung, die nie „hängen bleibt“.

Wichtig: Der Wert ist nur eine grobe Aussage des Browsers. Er berücksichtigt nicht zuverlässig blockierte Drittanbieter-Cookies, seitenbezogene Ausnahmen, Tracking-Schutz oder Erweiterungen. Wer es genau wissen muss, setzt zusätzlich ein Test-Cookie über document.cookie und liest es wieder aus.

In Web-Workern ist die Eigenschaft über WorkerNavigator nicht verfügbar. Dort steht in modernen Browsern stattdessen die asynchrone CookieStore-API zur Verfügung (wo unterstützt).

Rückgabewert

Typ
boolean
Beschreibung
true, wenn Cookies grundsätzlich aktiviert sind, sonst false.

Beispiele

Einfache Prüfung

if (navigator.cookieEnabled) {
  console.log('Cookies sind aktiviert.');
} else {
  console.log('Cookies sind deaktiviert.');
}
Cookies sind aktiviert.

Hinweis vor dem Login anzeigen

const loginForm = document.querySelector('#login');
const hint = document.querySelector('#cookie-hint');

loginForm.addEventListener('submit', (event) => {
  if (!navigator.cookieEnabled) {
    event.preventDefault();
    hint.textContent = 'Bitte aktiviere Cookies, damit die Anmeldung funktioniert.';
    hint.hidden = false;
  }
});

Zuverlässige Prüfung mit Test-Cookie

const cookiesWork = () => {
  if (!navigator.cookieEnabled) return false;
  try {
    document.cookie = 'cookietest=1; SameSite=Lax; path=/';
    const ok = document.cookie.includes('cookietest=1');
    // Test-Cookie wieder löschen
    document.cookie = 'cookietest=; Max-Age=0; path=/';
    return ok;
  } catch {
    return false; // z. B. SecurityError in sandboxed iframes
  }
};

console.log('Cookies nutzbar:', cookiesWork());
Cookies nutzbar: true

// Wichtig · Fallstricke

  • Nicht absolut zuverlässig: Der Wert kann true sein, obwohl Cookies für die aktuelle Seite blockiert sind, z. B. durch seitenbezogene Regeln, blockierte Drittanbieter-Cookies in iframes, Tracking-Schutz (Safari ITP, Firefox ETP) oder Erweiterungen. Für kritische Abläufe zusätzlich per Test-Cookie prüfen.
  • In einem iframe mit sandbox-Attribut ohne allow-same-origin wirft schon der Zugriff auf document.cookie einen SecurityError. Den Zugriff deshalb in try/catch kapseln.
  • Die Eigenschaft sagt nichts über localStorage oder sessionStorage aus. Diese können unabhängig davon gesperrt sein.
  • Die Eigenschaft ist schreibgeschützt. Zuweisungen werden ohne Fehlermeldung ignoriert.
  • Kompatibilität: In allen gängigen Browsern seit Langem verfügbar. In Web-Workern gibt es sie nicht.