У меня есть всплывающее окно подтверждения возраста, которое устанавливает cookie, чтобы запомнить действия пользователя в течение определенного периода времени. Я сделал это после следующего поста здесь при переполнении стека, но у меня есть некоторые сомнения.
CSS
#popup {
z-index: 1000;
top: 0;
left: 0;
right: 0;
bottom: 0;
position: fixed;
display: none;
background-color: rgba(0, 0, 0, 0.8);
}
JS использует Cookies (не работает)
$(function() {
//Check it the user has been accpeted the agreement
if (!(document.cookie && document.cookie == "accepted")) {
$("#popup").show();
}
$('[data-popup-close]').on('click', function(e) {
var targeted_popup_class = jQuery(this).attr('data-popup-close');
$('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
//Set a cookie to remember the state
document.cookie = "accepted";
e.preventDefault();
});
});
JS с использованием локального хранилища
$(function() {
//Check it the user has been accpeted the agreement
if (!localStorage.getItem('accepted')) {
$("#popup").show();
}
$('[data-popup-close]').on('click', function(e) {
var targeted_popup_class = jQuery(this).attr('data-popup-close');
$('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
//Set a cookie to remember the state
localStorage.setItem('accepted', true);
e.preventDefault();
});
});
Мой первый вопрос: почему использование файлов cookie не работает?
И второе: я хотел бы получить печенье на определенный период времени, как указано выше. Теперь с помощью метода localStorage просто покажите всплывающее окно один раз, и если я приму и обновлю страницу, всплывающее окно больше не будет отображаться, но я думаю, что оно не будет отображаться вечно. Я попытался использовать это внутри функции, чтобы контролировать, как долго будет активен файл cookie.
$.cookie('accepted','yes', {expires: 7, path: '/'});
Полагаю, что «7» означает 7 дней, но если поставить «0», то это тоже самое. Можно ли просто получить печенье на один час, чтобы посмотреть, работает ли оно правильно?
Как обычно, большое спасибо за вашу помощь.
Br