2012-03-20 31 views
0

我需要fancybox在cookie过期时显示,但这不起作用?谁能帮我?当cookie过期时,jquery显示fancybox

var timer = 1; 
$.cookie('popuptimer', 'timer', { expires: 2 * 60 * 1000 }); 

if($.cookie("popuptimer") == true){ 
} else { 
    $.fancybox({ 
     overlayOpacity: 0.8, 
     overlayColor: '#000', 
     type: 'iframe', 
     width: 625, 
     height: 550, 
     overflow: 'auto', 
     padding: 0, 
     href: '<?php echo base_url(); ?>feedback' 
    }); 
} 
+0

你应该运行的时间间隔检查如果cookie过期 – mgraph 2012-03-20 14:55:51

回答

0

即使用户转到另一个页面(此脚本必须位于每个页面上),此解决方案仍可正常工作。

function showPopuptimer(){ 
      $.fancybox({ 
       overlayOpacity: 0.8, 
       overlayColor: '#000', 
       type: 'iframe', 
       width: 625, 
       height: 550, 
       overflow: 'auto', 
       padding: 0, 
       href: '<?php echo base_url(); ?>feedback' 
      }); 
    } 

if(!$.cookie("popuptimer") && $.cookie("olduser")){ 
    //Cookie has expired since the last visit 
    showPopuptimer(); 
}else if($.cookie("popuptimer") && $.cookie("olduser")){ 
    //Wait for the cookie to expire, then show the box 
    setTimeout(showPopuptimer,$.cookie("popuptimer")); 
}else{ 
    $.cookie("olduser",true); 
    $.cookie('popuptimer', 'timer', { expires: 2 * 60 * 1000 }); 
    setTimeout(showPopuptimer,2 * 60 * 1000); 
} 
+0

它不起作用,我需要弹出窗口在cookie过期后立即出现,我是否需要为此使用ajax? – 2012-03-20 15:16:33

+0

我编辑了我的答案。 – Alytrem 2012-03-20 15:21:03

+0

啊是的我知道,我会但他们会去在同一网站的不同页面...这是我的问题:( – 2012-03-20 15:22:31

0

你可能会寻找某物像:

http://paulirish.com/2009/jquery-idletimer-plugin/ 

检查演示和线程,你会得到一个替代的想法希望