JavaScript通过Cookie实现简单的用户登录状态的保存。Cookie可以跨越多个网页使用,但不能跨域名使用,也不同跨浏览器使用。
1.设置cookie
1 function SetCookie(name, value)//两个参数,一个是cookie的名子,一个是值 2 { 3 var Days = 30; //此 cookie 将被保存 30 天 4 var exp = new Date(); //new Date("December 31, 9998"); 5 exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); 6 document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); 7 }
cookie是一对键值对,所以调用该方法的时候 只需要传递键名和键值。若果需要创建多个cookie,可以多次调用。
2.获取cookie
1 function getCookie(name)//取cookies函数 2 { 3 var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); 4 if (arr != null) return unescape(arr[2]); return null; 5 6 }
这里通过正则表达式对cookie进行分析,获取指定的cookie值。
3.删除cookie
1 function delCookie(name)//删除cookie 2 { 3 var exp = new Date(); 4 exp.setTime(exp.getTime() - 1); 5 var cval = getCookie(name); 6 if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); 7 }
原以为cookie删除是直接删除的那种,看了代码发现是通过设置时间来实现的。