我想让我的公告横幅在 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 还没有真正的经验...
您可以使用
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";
}