8

我正在开发一个 javascript 广告引擎,我希望它尊重 Firefox DNT 标头。

javascript 有什么方法可以检查用户是否在 Firefox 中将 DNT 设置为打开或关闭(或者没有设置首选项)而无需从服务器获得帮助?

4

1 回答 1

12

我想你正在寻找navigator.doNotTrack

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

MDN 在 Firefox 中解释说:

当do-not-track header发送“1”时,navigator.doNotTrack为“yes”。当标头未设置时,navigator.doNotTrack为“未指定”。当标头发送“0”(目前在 Firefox 中不支持)时,navigator.doNotTrack为“否”。

在其他浏览器中:

IE9、Opera 12 和 Safari 5.1 基于此规范的早期版本,其中 navigator.doNotTrack 是为不跟踪标头发送的值。

IE9 使用供应商前缀,即navigator.msDoNotTrack

因此,您通常可以通过以下方式检测 DNT:

var isDNT = navigator.doNotTrack == "yes" || navigator.doNotTrack == "1" || 
              navigator.msDoNotTrack == "1";
于 2013-06-05T18:49:40.337 回答