在关闭和重新打开浏览器时接受cookie后显示模式

lymnna71  于 2021-09-13  发布在  Java
关注(0)|答案(2)|浏览(350)

我已经实现了以下功能,以在我的站点上接受cookie模式。如果我接受,它将正常工作,在我关闭浏览器之前,不会在刷新或在新选项卡中打开站点。如果我关闭并重新打开浏览器,那么打开的站点将再次接受cookie模式显示。
我添加了以下代码,

<div class="modal fade" id="cookieModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
        aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-body">
                    <div class="notice d-flex justify-content-between align-items-center">
                        <div class="cookie-text">This website uses cookies to personalize content and analyse traffic in
                            order to offer you a better experience.</div>
                        <div class="buttons d-flex flex-column flex-lg-row">
                            <a href="javascript:;" class="btn btn-blue mr-2 accept-cookies"
                                data-dismiss="modal">Accept</a>
                            <a href="javascript:;" class="btn btn-blue mr-2 close-cookies"
                                data-dismiss="modal">Reject</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

if (document.cookie.indexOf("accepted_cookies=") < 0) {​​​​​​​
    $('#cookieModal').modal('show');
}​​​​​​​

$('.accept-cookies').on('click', function () {​​​​​​​
    document.cookie = "accepted_cookies=yes;"
    $('#cookieModal').modal('hide');
}​​​​​​​)

$('.close-cookies').on('click', function () {​​​​​​​
    $('#cookieModal').modal('hide');
}​​​​​​​)
fsi0uk1n

fsi0uk1n1#

问题是如果你不设置 expire 一块饼干,它会是 session 默认情况下。因此,当您关闭并重新打开浏览器时,它将被丢弃。
要设置过期日期,可以使用以下代码:

const now = new Date()
const currentTime = now.getTime()
const expireTime = currentTime + 1000 * 60 * 60; // one hour
now.setTime(expireTime)
document.cookie = 'accepted_cookies=yes;expires='+now.toUTCString()+';';
kg7wmglp

kg7wmglp2#

我必须实现相同的代码,并且在机器未关闭之前,代码正常工作。
一旦我关闭并重新启动我的机器并打开网站,然后模式弹出窗口再次显示,即使我已接受cookies。

相关问题