You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript弹窗代码实现每日仅显示一次弹窗?

实现Bootstrap弹窗每日仅显示一次

你可以通过Cookie记录用户当日是否已查看弹窗,将Cookie过期时间设为当日午夜,即可实现每日仅展示一次的效果。修改后的完整代码如下:

HTML部分(保留原结构)

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>

<div id="myModal" class="modal fade" style="padding-top:30%;">
  <div class="modal-dialog">
    My Content of pop up is here.
  </div>
</div>

JavaScript部分(修改核心逻辑)

$(document).ready(function() {
  // 检查是否存在当日已查看弹窗的Cookie
  if (!getCookie("hasSeenModal")) {
    $("#myModal").modal('show');
    // 设置Cookie,过期时间为当日23:59:59
    setModalCookie();
  }
});

// 读取指定名称的Cookie
function getCookie(name) {
  let value = "; " + document.cookie;
  let parts = value.split("; " + name + "=");
  if (parts.length === 2) return parts.pop().split(";").shift();
}

// 设置弹窗Cookie,有效期至当日结束
function setModalCookie() {
  let now = new Date();
  // 将时间设置为当日最后一秒
  now.setHours(23, 59, 59, 999);
  document.cookie = "hasSeenModal=true; expires=" + now.toUTCString() + "; path=/";
}

关键说明

  • getCookie:负责读取Cookie,判断用户今日是否已经看过弹窗。
  • setModalCookie:创建名为hasSeenModal的Cookie,把过期时间设为当日午夜,过了这个时间Cookie会自动失效,次日打开页面会重新触发弹窗。
  • path=/:确保Cookie在整个网站根路径下生效,避免不同页面路径导致Cookie不共享的问题。

内容的提问来源于stack exchange,提问作者Higgs Boson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:55:59