Я создаю всплывающее окно с тремя кнопками! Каждой кнопке необходимо установить файл cookie, но с другим временем истечения срока действия. Я использую jquery.cookie
для этого!
-
1 кнопка - больше cookie сеанса. Поэтому при нажатии этой кнопки всплывающее окно должно исчезнуть и снова отобразиться при запуске нового экрана браузера. Поэтому НЕ открывать страницу в том же окне браузера и на том же сайте.
-
1 кнопка предназначена для "Не показывать всплывающее окно снова", которое установит cookie на 7 дней
- 1 cookie устанавливается в функции AJAX succes и устанавливается в 365 дней.
У меня возникли проблемы с тем, чтобы настроить время истечения срока действия для правильной настройки. Например, когда я нажимаю кнопку с помощью cookie сеанса, всплывающее окно снова появляется, когда я открываю новую страницу внутри веб-сайта.
Я не вижу, что я делаю неправильно! Я не получаю никаких консольных ошибок, но файлы cookie просто не будут установлены должным образом.
Что у меня есть:
$(document).ready(function(){
var my_cookie = $.cookie('regNewsletter');
if (!my_cookie) {
setTimeout(function(){
$('#newsletter').modal('show');
}, 1000);
}
$(".close--btn").on("click", function () {
$.cookie('regNewsletter', true, {
path: '/',
domain: ''
});
});
$(".dismiss--btn").on("click", function () {
$.cookie('regNewsletter', true, {
path: '/',
domain: '',
expires: 7
});
});
console.log(my_cookie);
// code for removing cookie when session ends //
window.onbeforeunload = function() {
$.removeCookie('regNewsletter', { path: '/', domain: '' });
};
$("#newsletter .btn").click(function(e){
e.preventDefault();
$.ajax({
...
success: function(txt, status, xhr){
// some code //
$.cookie('regNewsletter', true, {
path: '/',
expires: 365
});
// etc etc //
});