下面的代码在页面加载后60秒后显示一个弹出窗口。它存储一个cookie,阻止弹出窗口多次显示。然后cookie会在会话结束时到期。
但是,如果您浏览多个页面,则不会触发弹出窗口。我需要在60秒内导航网站时触发弹出窗口,而不仅仅是在60秒内在输入页面上显示,如果这有意义的话?
以下是代码:
$(document).ready(function() {
if($.cookie('form-cookie') == null)
{
setTimeout(function(){
$('#form').modal('show');
}, 60000);
$.cookie('form-cookie', 'str');
}
else
{
$("div#form.modal").css('display','none');
}
});
}
感谢您的帮助,我是新手......
答案 0 :(得分:0)
不是简单地保存cookie,而是将cookie值设置为时间戳(以秒为单位),然后检查cookie是否存在以及当前时间戳是否为< 60与当前时间戳进行比较。
$(document).ready(function() {
var seconds = new Date().getTime() / 1000;
if($.cookie('form-cookie') == null)
{
setTimeout(function(){
$('#form').modal('show');
}, 60000);
$.cookie('form-cookie', seconds);
}
else
{
var diff=seconds-$.cookie('form-cookie')*1;
if (diff<60){
setTimeout(function(){
$('#form').modal('show');
}, 60000); //only for the time remaining, use diff*1000
}else{
$("div#form.modal").css('display','none');
}
}
});
}