我正在嘗試讓我的腳本檢查 cookie 是否存在。如果存在則將類設定為不顯示,如果不存在則顯示塊。
按下按鈕后,彈出視窗消失,但重新加載頁面后,它再次顯示,盡管 cookie 仍然存在。
我的頁腳中有這個腳本。
<script>
setCookie = (cName, cValue, expDays) => {
var date = new Date();
date.setTime(date.getTime() (expDays * 24 * 60 * 60 * 1000));
var expires = "expires=" date.toUTCString();
document.cookie = cName "=" cValue ";" expires "; path=/";
}
getCookie = (cName) => {
const name = cName "=";
const cDecoded = decodeURIComponent(document.cookie);
const cArr = cDecoded .split("; ");
var value;
cArr.forEach(val => {
if (val.indexOf(name) === 0) value = val.substring(name.length);
})
}
document.querySelector("#gdprCookiePopupAccept").addEventListener("click", () => {
document.querySelector(".gdprCookiePopup").style.display = "none";
setCookie("gdprAccept", true, 90)
})
var acceptCookie = getCookie("gdprAccept");
if(acceptCookie !== 'null') {
document.querySelector(".gdprCookiePopup").style.display = "block";
} else {
document.querySelector(".gdprCookiePopup").style.display = "none";
};
</script>
我究竟做錯了什么?
uj5u.com熱心網友回復:
問題是getCookie正在回傳undefined,因為它什么也沒回傳。將其更改為:
getCookie = (cName) => {
const name = cName "=";
const cDecoded = decodeURIComponent(document.cookie);
const cArr = cDecoded.split("; ");
var value;
cArr.forEach((val) => {
if (val.indexOf(name) === 0) value = val.substring(name.length);
});
return value;
};
還將您的if宣告更改為:
if (!acceptCookie) {
document.querySelector(".gdprCookiePopup").style.display = "block";
} else {
document.querySelector(".gdprCookiePopup").style.display = "none";
}
因為acceptCookie永遠不會等于"null";
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/475861.html
標籤:javascript
上一篇:對于WPF默認系統字體,如何在資源字典中指定默認系統字體
下一篇:如何檢查陣列是否包含給定元素
