Я использую jscookie, чтобы назначить пользователям cookie после запуска всплывающего окна, чтобы они не видели его в течение 7 дней.Мой код ниже.
На обеих страницах функция ищет всплывающий cookie.Если файл cookie отсутствует, всплывающее окно запускается, и файл cookie назначается.Обе эти функции работают правильно.
Вот проблема:
Если пользователь посещает page A
, всплывающее окно сработает, и ему будет назначен файл cookie.Затем, если пользователь переходит на page B
, у него все еще есть файл cookie, и всплывающее окно не будет запускаться.
Однако, если пользователь впервые посещает page B
, всплывающее окно будет запущено, и файл cookie назначен. Но , если пользователь затем переходит к page A
, cookie больше не появляется в списке файлов cookie.Появится всплывающее окно page A
и будет назначен файл cookie.
Вот кикер .Если я вернусь на страницу BI, я увижу два одинаковых файла cookie.Единственная разница - path
.Один popup_cookie
со страницы A и другой со страницы B.
Пример:
Name Value Domain Path
popup_cookie true mydomain.com /page-a
popup_cookie true mydomain.com /page-b
Вопрос:
Так почему же пользователь сохраняет cookie при переходеот page A
до page B
, но не от page B
до page A
?Как вы можете видеть ниже, cookie назначается одинаково в обоих случаях.
////Page A Popup
// Checks for popup cookie
if (Cookies.get('popup_cookie') == 'true') {
// Do nothing
} else if ($('#form').length) {
$('#form').appendTo('#page-a-popup-container');
$('body').on('mouseleave',function () {
if ($('#other-element').hasClass('visible')) {
// Do nothing
} else {
$('#page-a-popup-container').css('display', 'grid');
$('#popup-bg').fadeIn();
Cookies.set('popup_cookie', true, {expires: 7, path: ''});
$('body').off('mouseleave');
}
});
// Pop-up Close Button
$('#page-a-popup-close').click(function () {
$('#page-a-popup-container').hide();
$('#popup-bg').hide();
});
}
//// Page B Popup
// Checks for popup cookie
if (Cookies.get('popup_cookie') == 'true') {
// Do nothing
} else if ($('#form').length) {
$('#form').appendTo('#plan-b-popup-container');
$('body').on('mouseleave',function () {
if ($('#drip-header-119587').hasClass('drip-hidden')) {
// Do nothing
} else {
$('#plan-b-popup-container').css('display', 'grid');
$('#popup-bg').fadeIn();
Cookies.set('popup_cookie', true, {expires: 7, path: ''});
$('body').off('mouseleave');
}
});
// Pop-up Close Button
$('#plan-b-popup-close').click(function () {
$('#plan-b-popup-container').hide();
$('#popup-bg').hide();
});
}