首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS cookie栏不会在刷新时重复。

JS cookie栏不会在刷新时重复。
EN

Stack Overflow用户
提问于 2021-08-08 18:50:05
回答 1查看 37关注 0票数 0

有个饼干吧:

HTML:

代码语言:javascript
复制
<div id="cookie-bar-bottom" class="cookie-bar">text...
<a href="index-cookies.html" class="cookie-policy">
   <b><text style="color: rgb(230,0,100)">Cookies</text></b>
</a>
<input id="cookie-hide" class="cookie-hide" onclick="this.parentNode.parentNode.style.display = 'none'" value="Agree" type="button">
</div>

CSS:

代码语言:javascript
复制
.cookie-bar {
    position: fixed;
    width: 100%;
    bottom: 0;
    right: 0;
    left: 0;
    height: 30px;
    text-align: center;
    line-height: 25px;
    background: rgb(0,140,250,1);
    color: white;
    font-size: 17px;
    font-weight: 100;
    transition: .8s;
    animation: slideIn .8s;
}

我需要更好的解决方案,可能是通过JS来防止cookie条在下一次刷新时弹出。理想情况下,浏览器缓存将记住这个cookie已经被同意,因此再也不会出现在那个浏览器中。

有人帮我吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-01-29 08:52:47

这里是唯一缺少的东西( JS功能):

代码语言:javascript
复制
<script>
function closeCookieNotice() {
    const nowDate = new Date();
    const expireDate = new Date(nowDate.setDate(nowDate.getDate() + 30)).toUTCString();
    document.cookie = "cookie_notice=0;path=/;expires=" + expireDate + ";";
    document.getElementById("cookie-bar-bottom").style.display = "none";
};
document.addEventListener("DOMContentLoaded", function() {
    const cookie_notice = ('; ' + document.cookie).split('; cookie_notice=').pop().split(';')[0];
    if (cookie_notice !== "0") {
        document.getElementById("cookie-bar-bottom").style.display = "block";
    }
});
</script>

解释道:在栏关闭时设置cookie,并检查cookie是否在页面加载时设置。如果设置了cookie,则不会显示条形。简单,轻量级,并将完成它的工作。

您可以在这里获得更多cookie通知样式/主题https://cookienotice.js.org/themes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68703805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档