Javascript cookie не препятствует отображению всплывающего окна более одного раза в день - PullRequest
0 голосов
/ 28 августа 2018

Я новичок в 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">&times;</a>
    <div class="a-content">
       <iframe src="https://www.checkbox.com" width="990" height="550"></iframe> 

    </div>
  </div>
</div>

Буду очень признателен за любые советы о том, что я делаю неправильно.

...