我已经对您的代码进行了一些更改,以存储一个值为 true 的本地变量,并且从用户单击接受的那一刻起过期时间为 10 秒。将此部分更改为:
now.getTime() + (1000 * 60 * 60 * 24)
每次加载页面时,脚本都会查找此存储的 var,如果过期时间大于存储的值,则删除存储的 var 并再次显示 cookie 接受消息。
这里的代码:
<div id="cookieConsent" style="visibility: hidden;">
<div id="closeCookieConsent">x</div>
This website is using cookies. <a href="cookies-policy" target="_blank">More info</a>. <a class="cookieConsentOK"><b>ACCEPT</b></a>
</div>
<script type="text/javascript">
$(document).ready(function(){
var consentStr = localStorage.getItem('cookieSeen');
if(!consentStr) {
$("#cookieConsent").css('visibility','visible').hide().fadeIn(200);
} else {
var consent = JSON.parse(consentStr);
const now = new Date();
if (now.getTime() > consent.expiry) {
localStorage.removeItem('cookieSeen');
return null;
}
//console.log('Cookie accepted');
}
$("#closeCookieConsent, .cookieConsentOK").click(function() {
const now = new Date();
const item = {
value: true,
expiry: now.getTime() + 10000,
};
localStorage.setItem('cookieSeen', JSON.stringify(item) );
$("#cookieConsent").fadeOut(200);
});
});
</script>