创建基于会话的cookie,jquery

以下代码在页面加载时显示弹出消息并创建一个cookie,以便当用户返回页面时,他们将看不到弹出消息一次。 cookie的生命周期基于时间。 我想修改此代码,以便cookie的生命周期基于用户会话或一天。 任何指导或代码片段都会很棒。 谢谢。

链接到代码演示: http : //www.queness.com/post/77/simple-jquery-modal-window-tutorial

    $(document).ready(function() { //if the cookie hasLaunch is not set, then show the modal window if (!readCookie('hasLaunch')) { //launch it launchWindow('#dialog'); //then set the cookie, so next time the modal won't be displaying again. createCookie('hasLaunch', 1, 365); } //if close button is clicked $('.window #close').click(function () { $('#mask').hide(); $('.window').hide(); }); //if mask is clicked $('#mask').click(function () { $(this).hide(); $('.window').hide(); }); $(window).resize(function () { var box = $('#boxes .window'); //Get the screen height and width var maskHeight = $(document).height(); var maskWidth = $(window).width(); //Set height and width to mask to fill up the whole screen $('#mask').css({'width':maskWidth,'height':maskHeight}); //Get the window height and width var winH = $(window).height(); var winW = $(window).width(); //Set the popup window to center box.css('top', winH/2 - box.height()/2); box.css('left', winW/2 - box.width()/2); }); }); function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } function launchWindow(id) { //Get the screen height and width var maskHeight = $(document).height(); var maskWidth = $(window).width(); //Set heigth and width to mask to fill up the whole screen $('#mask').css({'width':maskWidth,'height':maskHeight}); //transition effect $('#mask').fadeIn(1000); $('#mask').fadeTo("slow",0.8); //Get the window height and width var winH = $(window).height(); var winW = $(window).width(); //Set the popup window to center $(id).css('top', winH/2-$(id).height()); $(id).css('left', winW/2-$(id).width()/2); //transition effect $(id).fadeIn(2000); }   body { FONT-FAMILY: verdana; FONT-SIZE: 15px } A { COLOR: #333; TEXT-DECORATION: none } A:hover { COLOR: #ccc; TEXT-DECORATION: none } #mask { Z-INDEX: 9000; POSITION: absolute; BACKGROUND-COLOR: #000; DISPLAY: none; TOP: 0px; LEFT: 0px } #boxes .window { Z-INDEX: 9999; POSITION: fixed; PADDING-BOTTOM: 20px; PADDING-LEFT: 20px; WIDTH: 640px; PADDING-RIGHT: 20px; DISPLAY: none; HEIGHT: 385px; PADDING-TOP: 20px } #boxes #dialog { PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; WIDTH: 640px; PADDING-RIGHT: 10px; HEIGHT: 385px; PADDING-TOP: 10px } .redbox { color: #F00; font-weight: bold; } .bold { font-weight: bold; }  
pop up message Ok

会话cookie是没有过期时间的cookie,因此请更改:

 createCookie('hasLaunch', 1, 365); 

至:

 createCookie('hasLaunch', 1); 

更好地使用HTML5会话存储function,因为某些用户可能会禁用cookie。

你可以这样试试。

 var isFirst = sessionStorage.getItem("FIRSTVISIT"); if(isFirst == null || isFirst == 'undefined') { sessionStorage.setItem("FIRSTVISIT", "YES"); launchWindow('#dialog'); }