jQuery -记住在页面刷新后是否激活了定时弹出窗口



我有一个包含表单的弹出叠加页面,该页面在20秒后自动显示或通过单击div上的操作显示。

我需要它的工作,以便当页面刷新后发送的形式,定时器覆盖不会再次开始,也因此,如果链接覆盖被点击定时器不继续-基本上我需要它记住,如果它被触发,以便覆盖只触发一次。

jquery的函数如下:

//popup button click function
  $('#popup_launcher').click(function(){
    $('#overlay').show(1000);
         $('html, body').animate({scrollTop:0}, 'slow');
      return false;
 });
 //close button click function
  $('#close').click(function(){
    $('#overlay').hide(1000);
 });
// popup timer function - change last value eg 20000 (20 seconds) to set time in milliseconds
        setTimeout(function() {  
                $('#overlay').show(1000);
                $('html, body').animate({scrollTop:0}, 'slow');
}, 20000);

页面正在开发中(表单提交尚未激活):http://www.tjsmarketing.co.uk/testarea/newquotepage/mk2/template.php?id=75890701谢谢你的帮助。亚伦。

$('#popup_launcher').one('click', (function(){
    $('#overlay').show(1000);
    $('html, body').animate({scrollTop:0}, 'slow');
    return false;
});

这将只执行一次点击事件,然后自行删除。

我会使用sessionStorage

// on page load
sessionStorage.overlay = 0;
// on click
sessionStorage.overlay = 1;
// time triggers overlay
sessionStorage.overlay = 2;
检索:

if(sessionStorage.overlay < 2){
    // load form magic
}

如果你愿意,你可以包括一些if else逻辑1 vs 0,我只是为了举例目的而保持简单。

这将在所有刷新中保留。值得注意的是,这适用于IE8+和所有真正的浏览器…如果你的目标是IE6的兼容性,这是行不通的。对于那些蹩脚的人,您可以编写一个单独的脚本来进行检测。检测浏览器支持:

if(window.sessionStorage){
    // do the above code
} else {
    // reference postback script
}

最新更新