分步引导中,Js操作Cookie,实现判断用户是否第一次登陆网站
上一篇介绍了分布引导插件IntroJs的使用,本篇介绍通过Js操作cookie的方法。
分步引导的功能只适合与第一次登陆网站的新用户,不能每次登陆都提示分布引导,那么如何判断用户是否第一次登录网站呢?
通过Js操作浏览器Cookie,方法有很多种,大多数是通过js获取到cookie存储的键值对,然后找到需要的哪一个键,在判断值,但是这种方案比较繁琐,现在给出一种新的想法。手动设置一个字段到cookie中,这样每次只判断是否有这个字段即可。代码如下:
1 <script type="text/javascript"> 2 $(document).ready(function() { 3 var newVisitor = isNewVisitor();// 如果是新访客 4 if(newVisitor === true) 5 { 6 // 动画弹出消息框 7 alert('您是新用户!'); 8 9 // 标记:已经向该访客弹出过消息。30天之内不要再弹 10 setCookie("gznotes-visited","true", 5); 11 } 12 }); 13 14 function isNewVisitor() { 15 // 从cookie读取“已经向访客提示过消息”的标志位 16 var flg = getCookie("gznotes-visited"); 17 if (flg === "") { 18 return true; 19 } else { 20 return false; 21 } 22 } 23 // 写字段到cookie 24 function setCookie(cname, cvalue, exdays) { 25 var d = new Date(); 26 d.setTime(d.getTime() + (exdays*24*60*60*1000)); 27 var expires = "expires="+d.toUTCString(); 28 document.cookie = cname + "=" + cvalue + "; " + expires +";path=/"; 29 } 30 // 读cookie 31 function getCookie(cname) { 32 var name = cname + "="; 33 var ca = document.cookie.split(';'); 34 for(var i=0; i<ca.length; i++) { 35 var c = ca[i]; 36 while (c.charAt(0)==' ') c = c.substring(1); 37 if (c.indexOf(name) == 0) return c.substring(name.length,c.length); 38 } 39 return ""; 40 } 41 </script> 42
注意在服务器端运行,本地运行没有效果