如何让公告横幅Cookie在特定时间后过期? [已关闭]

问题描述 投票:0回答:1

我想让我的公告横幅在 14 天后过期。我必须如何更改以下代码才能使其工作?

   //  Announcement Banner
        var button = document.querySelector("button");
        var element = document.querySelector("div");
        var body = document.querySelector("body");
    
        document
        .getElementById("top-site-message-hide")
        .addEventListener("click", function() {
            element.classList.toggle("yay");
            button.classList.toggle("yay");
            body.classList.toggle("yay");
            document.cookie =
            "cookie2=cocoMessageHide; expires=Fri, 3 Aug 2050 20:47:11 UTC; path=/";
        });
    
        if (document.cookie.indexOf("cookie2=") >= 0) {
        document.getElementById("top-site-message-wrapper").style.display = "none";
        body.style.paddingTop = "0px";
        }

我尝试了很多不同的解决方案。我认为必须有一行替换以下行:

document.cookie =
"cookie2=cocoMessageHide; expires=Fri, 3 Aug 2050 20:47:11 UTC; path=/";

但是我对 JavaScript 和 JQuery 还没有真正的经验...

javascript jquery cookies jekyll expired-cookies
1个回答
0
投票

您可以使用

Date()
setDate()
getDate()
组合来计算当前日期 + 14 天,然后将其插入 cookie 的
expires 
部分。

//  Announcement Banner
var button = document.querySelector("button");
var element = document.querySelector("div");
var body = document.querySelector("body");

document.getElementById("top-site-message-hide").addEventListener("click", function() {
  element.classList.toggle("yay");
  button.classList.toggle("yay");
  body.classList.toggle("yay");

  // Calculate date 14 days from now
  var expiryDate = new Date();
  expiryDate.setDate(expiryDate.getDate() + 14);

  // Set the cookie with the new expiry date
  document.cookie =
    "cookie2=cocoMessageHide; expires=" + expiryDate.toUTCString() + "; path=/";
});

if (document.cookie.indexOf("cookie2=") >= 0) {
  document.getElementById("top-site-message-wrapper").style.display = "none";
  body.style.paddingTop = "0px";
}
© www.soinside.com 2019 - 2024. All rights reserved.