从as到js,最开心的就是能直接用cookie了。今天研究了一下,记录如下:
//写入cookie function setCookie (name,value) { var days = 30;//30天过期 var exp = new Date(); exp.setTime(exp.getTime() +days*24*60*60*1000); document.cookie = name +"="+ escape(value)+";expires=" +exp.toGMTString(); } //读取cookie function getCookie(name) { var arr; var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if (arr=document.cookie.match(reg)) { return unescape(arr[2]); }else{ return null; } } //删除cookie function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime()-1); var cval = getCookie(name); if (cval !=null) {
document.cookie=name+"="+cval+";expires="+exp.toGMTString(); } }
使用:
//设置 setCookie("name","jay"); //获取 getCookie("name"); //删除 delCookie("name");
说明:
1. 每个cookie都是一个名/值对;可以把字符串赋值:document.cookie="UserId";
2. 在cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。所以要使用escape来包裹要赋的值,使用十六进制来表示。
然后读取的时候,再用unescape来解码,得到原来的值。
3. 如果要赋多个值,只能一个一个单独赋值。(资料里说可以用;(分号)来隔开,我测试不成功)
4. 可以设置路径path=/是网站根目录;例:document.cookie="userId=320; path=/";
5. 简单读取时,用split分隔成数组返回,再做操作。