【问题标题】:Trigger pop-up after a minute of session (across page-loads)会话一分钟后触发弹出窗口(跨页面加载)
【发布时间】:2018-05-26 16:16:03
【问题描述】:

我试图找出如何在会话中的一定时间后触发弹出窗口,而不是在用户切换页面时重置。我知道最简单的方法是使用 cookie 来跟踪会话,但我还没有弄清楚如何在会话的某个时间戳触发函数。

这是一个我认为有用的脚本:https://github.com/js-cookie/js-cookie

关于如何解决这个问题的任何建议?提前谢谢你。

【问题讨论】:

  • 有几个简单的想法是在每个页面加载时循环测试 cookie 中的时间戳,并在超过您的最大值时推送 alert() 或在每个页面加载时检查 cookie 并设置在过期时发送警报的计时器。可能有一些我从未使用过的更优雅的方式,但如果我面临你的任务,我会探索这两条轨道。

标签: javascript jquery cookies popup session-cookies


【解决方案1】:

首先,设置 cookie 的初始日期。

其次,在你的应用中

var minute = 1000 * 60;

var loop = setInterval(function(){

   var currentDate = new Date();
   var initialDate = new Date(Cookies.get('date'));

   if(initialDate - currentDate >= minute){
     Popup();
     clearInterval(loop);
   }

}, 1000)

【讨论】:

  • 感谢您的帮助!我最终对你的代码做了一个变体。
【解决方案2】:

我最终使用的是什么(Husam 答案的变体):

if (Cookies.get('sessionPopup')) {} else {
  var cookieTime = new Date().getTime();
  Cookies.set('sessionPopup', cookieTime, { expires: 1 });
} 
var loop = setInterval(function(){
var initialTime = Cookies.get('sessionPopup');
var triggerTime = new Date(); 
triggerTime = new Date(triggerTime .getTime() - 1000*60);
if(triggerTime.getTime() >= initialTime ){
  console.log('Popup is up!');
  clearInterval(loop);
}
}, 1000) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多