Просмотр исходного кода

add DNT DoNotTrack Support :
When browser make request with DNT header set to yes or 1, set all services to false
and service.fallback if needed. tarteaucitronAlertBig is not displayed/needed
but tarteaucitronAlertSmall is.

eldk 7 лет назад
Родитель
Сommit
87d590e476
1 измененных файлов с 8 добавлено и 0 удалено
  1. 8 0
      tarteaucitron.js

+ 8 - 0
tarteaucitron.js

@@ -405,6 +405,7 @@ var tarteaucitron = {
             isDenied = (cookie.indexOf(service.key + '=false') >= 0) ? true : false,
             isAllowed = (cookie.indexOf(service.key + '=true') >= 0) ? true : false,
             isResponded = (cookie.indexOf(service.key + '=false') >= 0 || cookie.indexOf(service.key + '=true') >= 0) ? true : false;
+            isDNTRequested = (navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1" || window.doNotTrack === "1") ? true : false;
 
         if (tarteaucitron.added[service.key] !== true) {
             tarteaucitron.added[service.key] = true;
@@ -462,6 +463,13 @@ var tarteaucitron = {
             }
             tarteaucitron.state[service.key] = false;
             tarteaucitron.userInterface.color(service.key, false);
+        } else if (!isResponded && isDNTRequested) {
+            tarteaucitron.cookie.create(service.key, 'false');
+            if (typeof service.fallback === 'function') {
+                service.fallback();
+            }
+            tarteaucitron.state[service.key] = false;
+            tarteaucitron.userInterface.color(service.key, false);
         } else if (!isResponded) {
             tarteaucitron.cookie.create(service.key, 'wait');
             if (typeof service.fallback === 'function') {