gpt4 book ai didi

javascript - "remind me later"跨导航使用 setTimeout 弹出窗口不会返回

转载 作者:行者123 更新时间:2023-11-30 23:43:29 24 4
gpt4 key购买 nike

这里是要求:

页面加载时,如果满足某些条件,则弹出一个包含详细信息的窗口,在弹出窗口上提供一个链接,上面写着“5分钟后提醒我”,当单击该链接时,弹出窗口应该消失并弹出5 分钟后备份。我使用 setTimeout 来延迟,但是它仅在您停留在原始父页面上时才起作用,如果您导航到其他页面,弹出窗口将不会返回。以下是单击链接时调用的函数:

  function popBack(delay, spec) {
var popupUrl = window.location;
window.close();
window.opener.setTimeout("window.open('" + popupUrl + "', 'popWindow', '" + spec + "')", delay);
}

非常感谢任何帮助。谢谢。

最佳答案

您是否考虑过使用 cookie 或 session 或数据库来存储提醒?每次加载页面时,您都可以检查提醒应该弹出的时间,并根据剩余时间开始新的超时。

可能的解决方案:

  1. 用户点击您的“5 分钟后提醒我”链接。
  2. 您创建一个 cookie,其中包含提醒应该弹出的时间。
  3. 在每次加载新页面时,打开 Cookie 并获取时间。
  4. 将超时函数设置为在(cookie 时间 - 当前时间)毫秒内触发。
  5. 将提醒标记为已启动,以防提醒应该关闭但用户正忙于在页面之间导航。
  6. 您还可以在新页面加载时检查已触发的标记,以了解已过但未触发的提醒时间,并立即显示提醒弹出窗口。
  7. 24 小时后或您需要的任何时间使 Cookie 过期。

我认为无论您选择什么解决方案,您都需要将数据保留在 JavaScript 之外的某个位置。

关于javascript - "remind me later"跨导航使用 setTimeout 弹出窗口不会返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3867563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com