JavaScript Cookie同意通知将重新出现,除非在主页上单击该通知
我正在编写一个cookie同意通知,当我在主页上单击“确定”消息以删除横幅时,该通知的功能正常,它会消失,不会重新显示 但是,如果我单击以删除网站上任何其他页面上的横幅,则当我访问另一个页面时,横幅会再次出现(除非后续页面中有一个是主页,否则它会在cookie期间消失,就像单击时一样) 有人知道这可能是什么原因吗 更新 我注意到的是,如果我点击通知,然后刷新页面,在开发工具中,cookie会将“路径”显示为页面名称,即应用程序>Cookies下的JavaScript Cookie同意通知将重新出现,除非在主页上单击该通知,javascript,session,cookies,Javascript,Session,Cookies,我正在编写一个cookie同意通知,当我在主页上单击“确定”消息以删除横幅时,该通知的功能正常,它会消失,不会重新显示 但是,如果我单击以删除网站上任何其他页面上的横幅,则当我访问另一个页面时,横幅会再次出现(除非后续页面中有一个是主页,否则它会在cookie期间消失,就像单击时一样) 有人知道这可能是什么原因吗 更新 我注意到的是,如果我点击通知,然后刷新页面,在开发工具中,cookie会将“路径”显示为页面名称,即应用程序>Cookies下的/contact,但当然,当我在主页上应用cook
/contact
,但当然,当我在主页上应用cookie时,它会将路径应用为/
,这将覆盖整个站点
我想我需要一种方法来始终将路径设置为添加cookie的任何页面上的/
在下面的JavaScript中,代码基本上添加了一些CSS类以淡出/删除横幅,然后添加了一个cookie以使其保持12个月(或者直到cookie被明显删除)
非常感谢你的帮助
艾米丽
您是否在浏览器开发人员控制台中看到任何错误?@JaromandaX否,没有显示任何错误。@JaromandaX我注意到的是,如果我单击通知,然后刷新页面,在开发工具中,cookie将“路径”显示为页面名,即应用程序>Cookies下的
/contact
,当然,当我在主页上应用cookie时,它会将路径应用为/
,这将覆盖整个站点。我想我需要一种总是将路径设置为/
添加cookie的任何页面?添加;路径=/
到您的cookiethen@JaromandaX啊好的。我是饼干新手,所以我不知道你能这么容易做到。如果你把这个作为答案,我会很高兴地把它标记为正确的。
// // 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');
}