2013-06-05 2 views
7

Ich arbeite an einer Javascript-Werbe-Engine, und ich möchte dafür Firefox DNT-Header respektieren.Ist es möglich, den Wert von Firefox DNT mit Javascript zu überprüfen?

Gibt es eine Möglichkeit Javascript kann überprüfen, ob der Benutzer DNT in Firefox ein- oder ausgeschaltet hat (oder keine Einstellungen eingestellt hat), ohne Hilfe vom Server zu bekommen?

+1

Beachten Sie, dass Firefox ist nicht der einzige Browser, der DNT implementiert. – BoltClock

+0

notiert) ......... –

Antwort

10

Ich glaube, Sie suchen navigator.doNotTrack:

console.log(window.navigator.doNotTrack); 
// prints "yes" if DNT is enabled; otherwise this is "unspecified" in Firefox 

MDN erklärt, dass in Firefox:

Wenn der do-not-Track-Header "1" sendet, navigator.doNotTrack "ja" . Wenn der Header nicht gesetzt ist, ist navigator.doNotTrack "nicht angegeben". Wenn der Header "0" sendet (derzeit in Firefox nicht unterstützt), ist navigator.doNotTrack "nein".

In anderen Browsern:

IE9, 12 Opera und Safari 5.1 auf einer früheren Version dieser Spezifikation basiert, wo navigator.doNotTrack der Wert für den Do-not-Track-Header gesendet wird.

IE9 verwendet einen Anbieter Präfix, das heißt, navigator.msDoNotTrack

So könnten Sie, indem Sie DNT im Allgemeinen erkennen:

var isDNT = navigator.doNotTrack == "yes" || navigator.doNotTrack == "1" || 
       navigator.msDoNotTrack == "1"; 
+1

Eigentlich habe ich FF, um 'DNT: 0' zu senden, indem ich" die Webseiten besuche, die ich verfolgt werden möchte ". FF unterstützt diese –

+0

@ArsZahray Interessant! Sieht so aus, als ob der MDN Artikel zum letzten Mal vor mehr als einem Jahr aktualisiert wurde. Trotzdem, da du nur nach positiven DNT-Ergebnissen suchst, sollte mein Code-Snippet * funktionieren (obwohl ich es nicht getestet habe). – apsillers

+1

@ArsenZahray Ich habe gerade einen Schnelltest in FF21 gemacht, und es sieht so aus "Sag den Webseiten, dass ich verfolgt werden will" und "Sag den Webseiten, die ich nicht verfolgen will" beide ein "Ja" "Wert, während es auf den Standardwert" Nichts senden "gesetzt wird, erzeugt" undefined ". Ich denke, mit der Zeit werden sie es korrigieren und "bitte * tu mir nach!" Wird sich schließlich in ein "Nein" verwandeln. In der Zwischenzeit ist es wahrscheinlich nicht so schlimm, alle "Ja" -Werte als "do * not * track me" zu behandeln, da die Leute, die sich für das Tracking entscheiden, wahrscheinlich ziemlich selten sind. – apsillers

Verwandte Themen