我正在使用 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
问题:
那么为什么用户在 from to 时保留 cookiepage A
而page B
不是 from page B
topage 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();
});
}