我正在开发一个 javascript 广告引擎,我希望它尊重 Firefox DNT 标头。
javascript 有什么方法可以检查用户是否在 Firefox 中将 DNT 设置为打开或关闭(或者没有设置首选项)而无需从服务器获得帮助?
我正在开发一个 javascript 广告引擎,我希望它尊重 Firefox DNT 标头。
javascript 有什么方法可以检查用户是否在 Firefox 中将 DNT 设置为打开或关闭(或者没有设置首选项)而无需从服务器获得帮助?
我想你正在寻找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";