Нужна помощь с куки

den-ch-s

Постоялец
Регистрация
17 Июл 2015
Сообщения
114
Реакции
5
Всем привет. Делаю окно всплывающее для сайта. Не работает. Была задача: человек заходит на сайт, видит всплывающее окно, закрывает и больше его не видит. Не понимаю как быть. Код позаимствовал с другого сайта. сам Для просмотра ссылки Войди или Зарегистрируйся
Будьте добры, помогите пожалуйста.
Код:
HTML:
<div class="SystemNotification-list" >
<div class="SystemNotification-item">
<span class="SystemNotification-content">
Этот сайт использует файлы cookie и обрабатывает персональные данные пользователей. Продолжая просматривать сайт, вы тем самым соглашаетесь с политикой конфиденциальности сайта и подтверждаете свое согласие на обработку и хранение персональных данных.
<a href="/personal-data/personal-data.pdf" class="SystemNotification-action" data-cookie-type="_sysNotify_cookies_">Узнать больше</a>
</span>
<a href="#" class="SystemNotification-action SystemNotification-animate SystemNotification-close" data-cookie-type="_sysNotify_cookies_">Закрыть</a>
</div>
</div>
<style>
.SystemNotification-list {
color: #aaa;
background: #f8f8f8;
text-align: center;
padding: 5px 0 7px 0;
line-height: 1.5;
font-size:12px;
}
.SystemNotification-item {
padding: 0 30px;
position: relative;
}
.SystemNotification-content {
max-width: 1000px;              
display: block;
margin: 0 auto;
}
.SystemNotification-content a {
color: #aaa;
}
.SystemNotification-close {
text-indent: -10000px;
background: transparent url(/img/ui-nicebutton-icon-transparent-close.png) no-repeat 0 0;
position: absolute;
width: 22px;
height: 22px;
top: 50%;
right: 4px;
margin-top: -11px;
border-radius: 11px;
}
.SystemNotification-close:hover {
background-position: 0 -23px;
}
</style>
<script>
        if (typeof jQuery === 'undefined') {
            throw new Error('System Notification module requires jQuery');
        }
        ;+function ($) {
            'use strict';
            var cookieDomain = ".tara-tovara.ru";
            $('.SystemNotification-action').each(function(){
                var ctrl = $(this),
                    name = ctrl.data('cookieType') || '',
                    item = ctrl.closest('.SystemNotification-item'),
                    list = ctrl.closest('.SystemNotification-list'),
                    CookieDate = new Date;

                CookieDate.setFullYear(CookieDate.getFullYear() + 100);

                var TimeClose = 1000*60*15; /* 15 минут (в миллисекундах)  */
            
                setTimeout(CloseCoockie, TimeClose);
            
                function CloseCoockie() {
                    $('.SystemNotification-close').click();
                }

                ctrl.on('click', function(e){
                    document.cookie = name + '=off; expires=' + CookieDate.toGMTString() + '; path=/' + (cookieDomain ? ('; domain=' + cookieDomain) : '');
                    ('#' == ctrl.attr('href')) && e.preventDefault();
                    if (ctrl.is('.SystemNotification-animate')) {
                        ctrl.hide();
                        item.animate({ height:0, opacity:0 }, 'slow', function(){
                            item.remove();
                            $('.SystemNotification-item', list).size() || list.remove();
                        });
                    }
                });
            });
        }(jQuery);
    </script>
 
Последнее редактирование:
Будьте добры, помогите пожалуйста.
Набросал на скорую руку. Для .SystemNotification-list прописать в css display:none
Здесь localStorage используется, а если не поддерживается - скрипт загрузит с cdn Для просмотра ссылки Войди или Зарегистрируйся - с ним удобно кроссбраузерно управлять куками. Хз, в общем нет времени тестить, вот:
HTML:
$(document).ready(function(){  
var cookiePlugin = 'https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js';
function if_local_storage() { 
  try {
    return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
    return false;
  }
}
function loadPluginCookie(a){
    $.ajax({
     type: 'GET',
     url: cookiePlugin,
     dataType: 'script',
     success: a,
     cache: true
    });
}
if(if_local_storage()){
    if(localStorage.getItem('hide') != '1'){
      $('.SystemNotification-list').show();
    }
} else {
 var func = function(){
   if($.cookie('hide') != '1'){
     $('.SystemNotification-list').show();
   }
 };
  if('cookie' in jQuery){
    func();
  } else {
    loadPluginCookie(func);
  }
}
$('.SystemNotification-close').on('click', function(){
    $('.SystemNotification-list').animate({ height:0, opacity:0 }, 'slow', function(){
      $(this).remove();
    }); 
  if(if_local_storage()){
    localStorage.setItem('hide', '1');
  } else {
    if('cookie' in jQuery){
       $.cookie('hide', '1',  { expires: 7, path: '/' });
    } else {
       var func = function(){
         $.cookie('hide', '1',  { expires: 7, path: '/' });
      };
      loadPluginCookie(func);
    }
  }
});
});
 
Назад
Сверху