我正在努力向我的弹出窗口添加cookie控件,因此它仅显示一次。
var modal = document.querySelector(".modal");
var close = document.getElementById("myDiv");
var element = document.getElementById("myDiv");
function popupScroll() {
element.classList.add("show-modal");
}
function closeModal() {
element.classList.add("hide-modal");
}
window.addEventListener("scroll", popupScroll);
window.addEventListener("click", closeModal);
最佳答案
您可以使用localStorage
或sessionStorage
。localStorage
访问当前域的本地存储对象并向其中添加数据项,而sessionStorage
访问当前域的会话存储对象并向其中添加数据项。
var modal = document.querySelector(".modal");
var close = document.getElementById("myDiv");
var element = document.getElementById("myDiv");
function popupScroll() {
if (!localStorage.getItem('showPopup')) { //check if popup has already been shown, if not then proceed
localStorage.setItem('showPopup', 'true'); // Set the flag in localStorage
element.classList.add("show-modal");
}
}
function closeModal() {
element.classList.add("hide-modal");
}
window.addEventListener("scroll", popupScroll);
window.addEventListener("click", closeModal);
请记住,虽然在
sessionStorage
中设置的项目会持续您的浏览器会话时间,但是localStorage
项没有到期时间。话虽这么说,在当前情况下,您可以使用localStorage
或sessionStorage
。