Я применил некоторые изменения в вашем коде, и теперь он должен работать.
В качестве резюме я применил следующие изменения:
- удален мертвый код из checkCookie;
- упрощен код для getCookie;
- исключил оверлейный div (который ничего не делал: он был просто создан пустым, подключен к DOM, а затем удален из него);
- изменил "всплывающее окно" с класса на идентификатор;
- уточнил строки выбора.
Чтобы улучшить функцию getCookie, я убрал лишний цикл и несколько подстрок. Вы можете получить тот же результат более аккуратно, используя метод обрезки (который исключает предшествующий и завершающий пробелы в строке) и разделяя файл cookie на "=".
Чтобы улучшить checkCookie, я удалил некоторый мертвый код (который не мог работать, потому что он был после оператора return), некоторый избыточный (который объявлял переменные для значений, необходимых только один раз) и явно бесполезный тег div. Кроме того, я изменил строки селектора, чтобы явно указывать на узел «a» внутри всплывающего окна, и добавил вызов метода protectDefault (). Эта последняя часть (изменение строк селектора и вызов метода protectDefault) была той, которая решала проблему.
function setCookie(cname,cvalue) {
document.cookie = cname + "=" + cvalue;
}
function getCookie(cname) {
var ca = decodeURIComponent(document.cookie).split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim().split('=');
if (cname == c[0] && c.length > 1) {
return c[1];
}
}
return "";
}
function checkCookie() {
if (getCookie("ageverification") == ""){
$('#popup').show();
$('#popup a.close').click(function (event) {
event.preventDefault();
$('#popup').hide();
setCookie("ageverification", 'true');
});
$('#popup a.goBack').click(function ( event ) {
event.preventDefault();
goBack();
});
} else {
return null;
}
}
function goBack() {
window.history.go(-2);
}
<div id='popup'>
<div class='cnt223'>
<h1>Important Notice</h1>
<p>
You must be over 18 to Purchase products on this website!
<br/>
<br/>
<a href='' class='close' style="color:green">I Am Over 18</a>
<a href='' class='goBack()' style="color:red">I Am Not</a>
</p>
</div>
</div>