如何在每个会话中只显示一次通知栏?

我有一个通知栏,我只想在每个会话中显示一次,或者可能没有在预定时间内显示通知。 我正在使用会话存储但不幸的是我无法正常工作。

谢谢

这是我的代码———–>

 $(document).ready(function() { var $alertdiv = $('
'); $alertdiv.text("Join our email list and receive the latest updates at 3Elements Review."); $alertdiv.bind('click', function() { $(this).slideUp(200); }); $(document.body).append($alertdiv); $("#alertmsg").fadeIn("slow"); setTimeout(function() { $alertdiv.fadeOut(400) }, 6000); }); $(window).load(function(){ if(typeof(window.sessionStorage) != 'undefined') { $("#alertmsg").val(window.sessionStorage.getItem('mySessionVal')); window.sessionStorage.setItem('mySessionVal', $("#alertmsg").val()); window.sessionStorage.setItem('storedWhen', (new Date()).getTime()); } });

没有明显的理由为sessionStorage使用window.onload,DOM就绪应该足够了吗?

此外,您需要在显示消息之前检查存储中是否存在该值,否则消息将始终显示:

 $(document).ready(function() { if (typeof window.sessionStorage != undefined) { if (!sessionStorage.getItem('mySessionVal')) { // ^^^ you can check time here as well ? $('
', { id : "alertmsg", text : "Join our email list and receive the latest updates at 3Elements Review.", on : { click: function() { $(this).slideUp(200); } } }).appendTo('body').fadeIn("slow").delay(6000).fadeOut("slow"); sessionStorage.setItem('mySessionVal', true); sessionStorage.setItem('storedWhen', Date.now()); } } });

小提琴