Is it possible to check the value of Firefox DNT with javascript?

∥☆過路亽.° 提交于 2019-12-20 10:44:25

问题


I'm working on a javascript advertising engine, and I would like for it to respect Firefox DNT header.

Is there any way javascript can check if the user has set DNT to on or off in firefox (or has set no preferences) without getting help from the server?


回答1:


I think you're looking for navigator.doNotTrack:

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

MDN explains that in Firefox:

When the do-not-track header sends "1", navigator.doNotTrack is "yes". When the header is unset, navigator.doNotTrack is "unspecified". When the header sends "0" (currently unsupported in Firefox), navigator.doNotTrack is "no".

In other browsers:

IE9, Opera 12, and Safari 5.1 are based on an earlier version of this specification where navigator.doNotTrack is the value sent for the do-not-track header.

IE9 uses a vendor prefix, i.e., navigator.msDoNotTrack

So, you might detect DNT in general by doing:

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


来源:https://stackoverflow.com/questions/16947459/is-it-possible-to-check-the-value-of-firefox-dnt-with-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!