一分钟会话后触发弹出窗口(跨页面加载)
Trigger pop-up after a minute of session (across page-loads)
我正在尝试了解如何在会话中经过一定时间后触发弹出窗口,而不是在用户切换页面时重置。我知道最简单的方法是使用 cookie 来跟踪会话,但我还没有弄清楚如何在会话的某个时间戳触发函数。
这是一个我认为有用的脚本:https://github.com/js-cookie/js-cookie
关于如何处理这个问题有什么建议吗?提前谢谢你。
首先,设置带有初始日期的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)
我最终使用的是什么(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)
我正在尝试了解如何在会话中经过一定时间后触发弹出窗口,而不是在用户切换页面时重置。我知道最简单的方法是使用 cookie 来跟踪会话,但我还没有弄清楚如何在会话的某个时间戳触发函数。
这是一个我认为有用的脚本:https://github.com/js-cookie/js-cookie
关于如何处理这个问题有什么建议吗?提前谢谢你。
首先,设置带有初始日期的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)
我最终使用的是什么(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)