Как указать cookie для показа на всем сайте до закрытия? - PullRequest
0 голосов
/ 21 мая 2019

Я сделал div, который показывает один раз в день для пользователя, пока он не закроет его, но у меня проблема в том, что после посещения магазина и возврата на стартовый сайт он автоматически закрывается.

Я хотел бы предложить несколько советов по устранению этой проблемы.

Я пытался использовать document.cookie = 'hidecookiehinweisheader=1; domain=; expires=... вместо document.cookie ='hidecookiehinweisheader=1; path=/; expires=... После ввода domain= вместо path= Я больше не могу закрывать div, он просто остается там до обновления страницы или до перехода в магазин и обратно к стартовый сайт.

$(function() {
  $('#hinweis_header').trigger('onload');
});

function setCookieHinweisHeaderCounter() {
  if (document.cookie.indexOf('cookiehinweisheaderCounter=2') === -1) {
    if (document.cookie.indexOf('cookiehinweisheaderCounter=1') === -1) {
      document.cookie = 'cookiehinweisheaderCounter=1; path=/;';

    } else if (document.cookie.indexOf('cookiehinweisheaderCounter=1') !== -1) {
      document.cookie = 'cookiehinweisheaderCounter=2; path=/;';
    }
  }
}

function setCookieHinweisHeader() {
  var ablauf = new Date();
  var inXTagen = ablauf.getTime() + (24 * 60 * 60 * 1000); // 1 Tage
  ablauf.setTime(inXTagen);
  document.cookie = 'hidecookiehinweisheader=1; domain=; expires=' + ablauf.toGMTString();
}

if (document.cookie.indexOf('hidecookiehinweisheader=1') !== -1 || document.cookie.indexOf('cookiehinweisheaderCounter=2') !== -1) {
  jQuery('#hinweis_header').hide();
} else {
  jQuery('#hinweis_header').prependTo('meta_navi');
  jQuery('.hinweis-header').show();
}
<div id="hinweis_header" onload="setCookieHinweisHeaderCounter()">
  <span style="font-weight: bold;"><a class="hinweis-header" href="<?=SHOP_URL_HTTPS?>/<?=$param["links"]["service"]?>/<?=$sprachdatei["links"]["link_hinweis"]?>"><b>Nur heute: 10 % auf alle Jersey Stoffe >><?=$sprachdatei['header']['hinweis_header']?></b></a></span>
  <div class="close-btn"><span id="hinweis-close" class="rwd-buttinette-icon rwd-icon-remove-circle-1" onclick="setCookieHinweisHeader();jQuery('#hinweis_header').slideUp" style="margin-top: -8px; float: right; color: #fff; font-size: 23px;"></span></div>
</div>

Для ясности, я хочу показывать div #hinweis_header на всем сайте, пока кто-нибудь не закроет его с span #hinweis-close. Он может уйти на освежение, это не имеет значения.

1 Ответ

0 голосов
/ 21 мая 2019
  1. используйте https://github.com/js-cookie/js-cookie, добавив <script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.2.0/js.cookie.min.js"></script>

  2. Используйте этот код DEMO

$(function() {
  var closed = Cookies.get('hinweis');
  if (!closed) {
    $('#hinweis_header').show();
  } 

  $('#hinweis-close').on('click',function() {
    Cookies.set('hinweis', 'seen');
    $('#hinweis_header').slideUp();
  });
});
#hinweis-close {
  margin-top: -8px;
  float: right;
  color: #fff;
  font-size: 23px;
}
#hinweis_header { display:none }
<div id="hinweis_header">
  <b><a class="hinweis-header" href="<?=SHOP_URL_HTTPS?>/<?=$param["links"]["service"]?>/<?=$sprachdatei["links"]["link_hinweis"]?>">Nur heute: 10 % auf alle Jersey Stoffe >><?=$sprachdatei['header']['hinweis_header']?></a></b>

  <div class="close-btn"><span id="hinweis-close" class="rwd-buttinette-icon rwd-icon-remove-circle-1"></span></div>
</div>
...