Можно ли проверить значение Firefox DNT с помощью JavaScript?

Я работаю над рекламным движком javascript и хотел бы, чтобы он уважал заголовок Firefox DNT.

Есть ли способ, которым javascript может проверить, установил ли пользователь включение или выключение DNT в Firefox (или не задал никаких предпочтений), не обращаясь за помощью к серверу?

1 ответ

Решение

Я думаю, что вы ищете navigator.doNotTrack:

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

MDN объясняет, что в Firefox:

Когда заголовок "не отслеживать" отправляет "1", navigator.doNotTrack Да". Когда заголовок не установлен, 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";
Другие вопросы по тегам