2014-02-24 50 views
0

我有一个用户必须登录的网站,一旦完成,他们被引导到一个新页面并弹出一个对话框。我没有问题显示弹出框,但是如果您刷新页面并且弹出框出现。我希望它只在登录后才显示,并且只要他们从不登出,就不会再显示。这意味着如果他们重新刷新页面或类似的东西,弹出窗口不会再出现。有没有某种插件或简单的代码(我在JQuery中是一个初学者)?只显示jquery弹出窗口一次

<div id="popup-image-back"> 
    <div class="popup-textbox"> 
     <div class="textbox-title">WE’VE HAD A MAKEOVER!</div> 
     <div class="textbox-p">With fewer restrictions, more destinations and even better rewards you can start saving more money!</div> 
    </div> 
    <img class="new-popup-xclose" src="images/close-x-dark.png" /> 
</div> 
<div id="back-wrapper"></div> 

的JavaScript

$(document).ready(function() { 
    $('#back-wrapper').fadeIn(1000, function() { 
     $('#popup-image-back').fadeIn(1000); 
    }); 
    $(".new-popup-xclose").click(function() { 
     $('#popup-image-back').fadeOut(1000); 
     $('#back-wrapper').fadeOut(1000); 
    }); 
}); 

回答

0

可以使用localstorage做到这一点:

if (localStorage.getItem("iswrpdivloaded") === null) { 
    $('#back-wrapper').fadeIn(1000,function(){ 
    $('#popup-image-back').fadeIn(1000); 
}); 
localStorage.setItem('iswrpdivloaded', 1); 
} 
+0

是否有某种脚本标记或链接,我必须放在该局部存储代码的头部工作?因为我试过了,失败了。 –

+0

不,你不知道。你只需要确保浏览器和版本支持HTML5(几乎所有的现代浏览器都可以) –

+0

然后这很奇怪,因为它不工作。我将这个代码包含在document.ready函数中,是否正确? –

0

您可以使用此为一次弹出。

$(window).load(function(){ 
     $('.popUp').show(); 
     $('.close').click(function(){ 
      $('.popUp').slideUp(); 
     }); 
     setTimeout('$(".popUp").fadeOut()', 10000); 
    }); 
+0

但每次我重新刷新页面弹出窗口。它应该只在用户登录后才显示,只要他们不登出就不会再显示。 –

2

虽然这个线程可能是古老的,我想给一个OP可以使用的答案。通过使用cookie,您可以将页面设置为仅显示一次。由于大多数浏览器都支持cookie,因此比使用当前浏览器所拥有的内部存储引擎更可靠。

$(document).ready(function(){ 

    // test for cookie here 
    if ($.cookie('test_status') != '1') { 
     //show popup here 
     window.open('YOUR POPUP URL HERE','windowtest','toolbar=0,status=0,width=500,height=500'); 

     // set cookie here if not previous set 
     var date = new Date(); 
     var minutes = 30; 
     date.setTime(date.getTime() + (minutes * 60 * 1000)); 
     $.cookie('test_status', '1', {expires: date}); 
    } 

}); 

要测试此操作,请务必在每次刷新之间清除Cookie。