我如何使用我的代码将cookie设置为在x天后过期

How can I set a cookie to expire after x days with this code I have?

本文关键字:天后 过期 设置 cookie 何使用 我的 代码      更新时间:2023-09-26

可能重复:
什么是";最佳";使用JavaScript 获取和设置单个cookie值的方法

所以我有这个代码(我没有做(,它基本上是用X创建一个容器,所以当我按下X时,div容器就会关闭。但是,当刷新页面时,div容器将再次出现。

当用户按下X按钮时,该用户将永远不会在该页面上看到div容器(或在30天等固定时间内(,我该如何做到这一点?

如果可能的话,我想更进一步,这样当用户按下X按钮时,他/她将永远不会在我的整个站点中看到div容器,因为我计划在整个站点中实现相同的div容器。

希望这不会太令人困惑,希望有人能帮我。谢谢

HTML代码:

<div id="bottom_ad">
    <div id="close_ad" onclick="close_bottom_ad();">X</div>
    <!-- Ad Content -->
</div>

CSS代码:

#bottom_ad
{
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 80px;
    background: #000;
}
#close_ad
{
    position: absolute;
    top: 8px;
    right: 8px;
    width: 15px;
    height: 15px;
    color: #fff;
}

JavaScript(位于文件底部,标记之前。(代码:

<script type="text/javascript">
    // I may have sorta kinda taken this function from W3Schools. :S
    function getCookie(c_name)
    {
        var i,x,y,ARRcookies=document.cookie.split(";");
        for (i=0;i<ARRcookies.length;i++)
        {
            x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
            y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
            x=x.replace(/^'s+|'s+$/g,"");
            if (x==c_name)
            {
                return unescape(y);
            }
        }
    }
    var ad_cookie = getCookie("closedAd");
    if (ad_cookie != null && ad_cookie != "")
    {
        document.getElementById("bottom_ad").style.display="none";
    }
    function close_bottom_ad()
    {
        document.getElementById("bottom_ad").style.display="none";
        document.cookie = "closedAd=true;";
    }
</script>

要在cookie上设置30天的过期时间,您需要在cookie中添加一个过期时间。这里有一个非常简单的cookie函数,可以设置N天的cookie:

function createCookie(name, value, days) {
    var date, expires;
    if (days) {
        date = new Date();
        date.setDate(date.getDate()+days);
        expires = "; expires="+date.toUTCString();
    } else {
        expires = "";
    }
    document.cookie = name+"="+value+expires+"; path=/";
}

通过在cookie中设置适当的过期日期,它将在那时自动删除。

然后,当你的页面加载时(你必须等到页面加载完成后才能尝试修改它(,你可以检查你的cookie closeAd是否设置好,如果设置好了,执行代码隐藏广告。为了获得更无闪烁的观看体验(这样广告就不会先显示打开,然后关闭(,你既可以从隐藏广告开始,也可以只在没有cookie的情况下显示。或者,如果没有cookie,则只能动态地将其添加到页面中。