Signatur
Beschreibung
Die schreibgeschützte Eigenschaft navigator.doNotTrack zeigt, ob der Benutzer im Browser die Option „Do Not Track“ eingeschaltet hat. Ist sie aktiv, schickt der Browser außerdem bei jeder Anfrage den HTTP-Header DNT: 1. Webseiten können den Wert per JavaScript auslesen und dann zum Beispiel Analyse- oder Werbeskripte gar nicht erst laden.
Mögliche Werte:
"1": Der Benutzer möchte nicht verfolgt werden."0": Der Benutzer erlaubt Tracking ausdrücklich.null: Keine Einstellung gewählt (Standardfall) oder vom Browser nicht unterstützt.
Der W3C-Standard „Tracking Preference Expression“ wurde eingestellt. Einige Browser liefern die Eigenschaft deshalb nicht mehr oder liefern immer denselben Wert. Als Nachfolger gilt Global Privacy Control mit navigator.globalPrivacyControl und dem Header Sec-GPC. In manchen Rechtsordnungen, etwa unter dem CCPA in Kalifornien, ist dieses Signal rechtlich verbindlich. Setzen Sie DNT daher höchstens als zusätzliches Signal ein und nicht als einzige Grundlage für den Datenschutz.
Rückgabewert
"1" (nicht verfolgen), "0" (Tracking erlaubt) oder null (nicht gesetzt oder nicht unterstützt). Ältere Browser liefern teils auch "yes", "no" oder "unspecified", oder undefined, wenn die Eigenschaft fehlt.Beispiele
DNT-Einstellung auslesen
const dnt = navigator.doNotTrack;
console.log(`Do Not Track: ${dnt}`);
Browserübergreifende Prüfung mit Fallbacks
const isTrackingDisabled = () => {
const value =
navigator.doNotTrack ??
window.doNotTrack ?? // ältere Safari-/IE-Versionen
navigator.msDoNotTrack; // IE 9/10
return value === '1' || value === 'yes';
};
console.log(isTrackingDisabled());
Analyse-Skript nur ohne DNT/GPC-Signal laden
const respectsPrivacy = () =>
navigator.globalPrivacyControl === true ||
navigator.doNotTrack === '1';
const loadAnalytics = () => {
const script = document.createElement('script');
script.src = 'https://analytics.example.com/tracker.js';
script.async = true;
document.head.append(script);
};
if (respectsPrivacy()) {
console.log('Tracking deaktiviert – Analyse wird nicht geladen.');
} else {
loadAnalytics();
}
// Wichtig · Fallstricke
- Veraltet: Der DNT-Standard wurde aufgegeben. Safari hat die Unterstützung entfernt, dort ist die Eigenschaft
undefined. Firefox hat die Einstellung ebenfalls zurückgebaut. Chromium unterstützt sie derzeit noch. - Uneinheitliche Werte: Ältere Browser liefern teils
"yes"/"no"oder stellen den Wert nur alswindow.doNotTrackodernavigator.msDoNotTrackbereit. Prüfen Sie daher immer defensiv. - Nicht verbindlich: DNT ist nur eine Bitte an die Webseite. Kein Server muss sie beachten. Eine rechtssichere Einwilligung nach DSGVO ersetzt sie nicht.
- Fingerprinting: Ein selten gesetzter Wert wie
"1"kann den Benutzer ironischerweise leichter wiedererkennbar machen. - Serverseitige Alternative: Den Header
DNTbzw.Sec-GPCkann auch der Server auswerten. So werden Tracking-Skripte gar nicht erst ausgeliefert. - Für neue Projekte ist
navigator.globalPrivacyControlvorzuziehen, sofern verfügbar.