Я новичок в JavaScript и пытаюсь настроить всплывающее окно, которое будет отображаться только один раз в день для посетителя. Всплывающее окно корректно работает и открывается через 4 минуты на странице. Если я закрываю всплывающее окно, оно не отображается снова, пока я все еще на той же странице. Проблема в том, что когда я перехожу на другую страницу, всплывающее окно снова отображается через 4 минуты. После того, как пользователь закрыл всплывающее окно, он не должен видеть его снова в течение 24 часов, независимо от того, какие страницы он посещает.
Код, который я использую:
<script>
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";domain=;path=/";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
return "";
}
var cookie = getCookie('ma_epht');
if (!cookie) {
showPopup();
}
$(document).ready(function(){
$("#MyPopup").hide(0).delay(240000).fadeIn(0)}
);
function showPopup() {
setCookie('ma_epht', 'true', 365);
document.querySelector('#MyPopup').style.display = 'block';
}
</script>
<div id="MyPopup" class="overlay">
<div class="autopop">
<a class="close" href="#MyPopup">×</a>
<div class="a-content">
<iframe src="https://www.checkbox.com" width="990" height="550"></iframe>
</div>
</div>
</div>
Буду очень признателен за любые советы о том, что я делаю неправильно.