Я ломаю голову над проблемой кода отслеживания внутри оператора if else ...
Я установил cookie, когда посетитель принимает некоторые правила. Когда cookie не существует, вы получаете текст, который вы должны принять. Когда файл cookie существует, запустите код Google Analytics. Весь javascript я поместил в отдельный файл с именем cookieaccept.js
Это код де в файле .js:
function getCookie(name) {
var cookie = document.cookie;
var prefix = name + "=";
var begin = cookie.indexOf("; " + prefix);
if (begin == -1) {
begin = cookie.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = cookie.length;
}
}
return unescape(cookie.substring(begin + prefix.length, end));
}
var myCookie = getCookie("cookieaccept");
if (myCookie == null) {
document.write('To accept click here');
} else {
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-00000000-1', 'auto');
ga('send', 'pageview');
ga('set', 'anonymizeIp', true);
}
Но он все еще загружает скрипт или его часть, даже если cookie не существует, и на сайте я получаю эту ошибку:
EDIT:
Я думаю, что проблема в операторе else в сочетании с функцией:
} else {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-00000000-1', 'auto');
ga('send', 'pageview');
ga('set', 'anonymizeIp', true);
}
Поскольку даже если вы не принимаете cookie, этот код все равно будет загружен:
ga('create', 'UA-00000000-1', 'auto');
ga('send', 'pageview');
ga('set', 'anonymizeIp', true);
Так что я думаю, что у меня есть определение функции другим способом, но я понятия не имею, как ...