JavaScript Cookie 同意通知重新出现,除非在主页上单击关闭
JavaScript Cookie Consent Notice Reappears Unless It Is Clicked Off On The Homepage
我正在编写一个 cookie 同意通知,它在功能方面运行良好——当我在主页上并单击 'OK' 消息以删除横幅时,它会消失并且不会重新显示.
但是,如果我单击删除网站上任何其他页面上的横幅,当我访问另一个页面时它会再次出现(除非后续页面之一是主页,然后它会在 cookie 的持续时间内消失当它被点击时应该如此)。
有人知道是什么原因造成的吗?
更新
我注意到如果我点击通知然后刷新页面,在开发工具中 cookie 显示 'path' 作为页面名称,即应用程序下的 /contact
> Cookie,当然,当我在主页上应用 cookie 时,它会将路径应用为 /
,然后将覆盖整个网站。
我想我需要一种方法来始终将路径设置为 /
添加 cookie 的任何页面?
在下面的 JavaScript 中,代码基本上添加了一些 CSS 类 来淡化 out/remove 横幅,然后添加一个 cookie 以使其关闭 12 个月(或者直到 cookie 明显被删除)
非常感谢您的帮助
艾米丽
// // COOKIES
var cookieButton = document.getElementsByClassName('cookie-button') [0],
cookieBanner = document.getElementsByClassName('cookie-banner') [0]
cookieButton.addEventListener('click', function() {
var cookieString = 'CookieConsent=true; expires=';
var date = new Date();
var expireDate = date.getTime() + (31536000000);
date.setTime(expireDate);
cookieString += date.toUTCString();
document.cookie = cookieString;
// fades out cookie banner
cookieBanner.classList.add('cookie-fade')
})
// prevents cookie showing on next visit
if (document.cookie.split(';').filter(function(item) {
return item.trim().indexOf('CookieConsent=') == 0
}).length) {
// prevents cookie notice showing on next visit
cookieBanner.classList.add('hidden');
}
答案是将 ; path=/
添加到 cookieString
变量。
我正在编写一个 cookie 同意通知,它在功能方面运行良好——当我在主页上并单击 'OK' 消息以删除横幅时,它会消失并且不会重新显示.
但是,如果我单击删除网站上任何其他页面上的横幅,当我访问另一个页面时它会再次出现(除非后续页面之一是主页,然后它会在 cookie 的持续时间内消失当它被点击时应该如此)。
有人知道是什么原因造成的吗?
更新
我注意到如果我点击通知然后刷新页面,在开发工具中 cookie 显示 'path' 作为页面名称,即应用程序下的 /contact
> Cookie,当然,当我在主页上应用 cookie 时,它会将路径应用为 /
,然后将覆盖整个网站。
我想我需要一种方法来始终将路径设置为 /
添加 cookie 的任何页面?
在下面的 JavaScript 中,代码基本上添加了一些 CSS 类 来淡化 out/remove 横幅,然后添加一个 cookie 以使其关闭 12 个月(或者直到 cookie 明显被删除)
非常感谢您的帮助
艾米丽
// // COOKIES
var cookieButton = document.getElementsByClassName('cookie-button') [0],
cookieBanner = document.getElementsByClassName('cookie-banner') [0]
cookieButton.addEventListener('click', function() {
var cookieString = 'CookieConsent=true; expires=';
var date = new Date();
var expireDate = date.getTime() + (31536000000);
date.setTime(expireDate);
cookieString += date.toUTCString();
document.cookie = cookieString;
// fades out cookie banner
cookieBanner.classList.add('cookie-fade')
})
// prevents cookie showing on next visit
if (document.cookie.split(';').filter(function(item) {
return item.trim().indexOf('CookieConsent=') == 0
}).length) {
// prevents cookie notice showing on next visit
cookieBanner.classList.add('hidden');
}
答案是将 ; path=/
添加到 cookieString
变量。