javascript - 页面加载后的弹出窗口每 24 小时仅打开一次

标签 javascript html modal-dialog popup popupwindow

我有一个工作弹出窗口,在页面加载后打开。

我希望它每 24 小时显示一次,或者每次用户打开浏览器时显示一次,或者以任何其他方式显示,这样在每次页面刷新等之后就不会显示它。

我知道可以使用 cookies、浏览器缓存或 php 函数来完成。您能提供任何代码以最简单的方式做到这一点吗?我应该使用数据库、cookies 还是其他方式来存储这些数据?

function PopUp(e){
  if(e == 'hide'){
    document.getElementById('outside').style.display='none';
  }else{
    document.getElementById('outside').removeAttribute('style');
  }
}

window.onload = function(){
  setTimeout(function(){
    PopUp('show');
  },25);
}
/*DEMO*/
#outside{position:fixed;top:0;left:0;bottom:0;right:0;background:rgba(100,50,0,.6)}
#inside{width:50%;height:50%;position:relative;top:20%;left:20%;background:#1C2338}
<div id="outside" style="display:none">
  <div id="inside">
    <h2 onClick="PopUp('hide')">CONTENT</h2>
  </div>
</div>

最佳答案

正如评论中提到的,您可以使用 cookie以及执行此操作的截止日期。基本上,如果特定 cookie 不存在,则仅显示弹出窗口,同时将 cookie 设置为 24 小时到期时间。

if (document.cookie.indexOf("popupShown=true") == -1) {
    document.cookie = "popupShown=true; max-age=86400"; // 86400: seconds in a day
    // make the popup show here
}

24 小时后,cookie 将过期,并且在下一个网页加载时,弹出窗口将再次显示。

关于javascript - 页面加载后的弹出窗口每 24 小时仅打开一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48490549/

相关文章:

Angular2 ng-bootstrap 模态关闭组件

javascript - 在 iOS Safari 中禁用链接上的默认拖动行为

html - 我想链接到我的主页 : ./或/?

javascript - 想要将脚本的 'src' 设置为我的 IP - 无法在 Safari 或 Chrome 中加载。相对链接asp.netmvc

jquery - 我的 jquery 模态框已决定不是模态的

javascript - 停止子 DIV 从其父页面继承样式

javascript - 使用 Three.js 包含图像

javascript - 动态向div添加新的jqPlot图表使旧的图表变空

javascript - 通过选择的 Jquery 更新选择

javascript - 查找并替换文本而不破坏点击事件