cookie常用知识详解
最近做页面碰到了cookie方面的问题,好好研究了一下,收集到一些知识,展示出来与大家共享,期望共同进步。
cookie的作用
cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。
cookie文件的存放地址,当然浏览器要设置了保存cookie才可以看的到
例如在Windows 2000以及Windows xp中,cookie文件存储于documents and settings\userName\cookie\文件夹下。通常的命名格式为:userName@domain.txt。
*设置cookie
每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:
document.cookie="userId=828";
如果要一次存储多个名/值对,可以使用分号加空格(; )隔开,例如:
document.cookie="userId=828; userName=hulk";
cookie的值通常要加密,常用的函数为encode(value),即userid=encode("1000101")
function setCookie(name,value,expires,path,domain,secure){alert("cookieSet");var curCookie=name+"="+encodeURI(value)+((expires)?";expires="+expires.toGMTString():"")+((path)?";path="+path:"")+((domain)?";domain="+domain:"")+((secure)?";secure="+secure:"");document.cookie=curCookie;}
function getCookie(name){if(document.cookie.length>0){start=document.cookie.indexOf(name+"=")if(start!=-1){start=start+1+name.length;end=document.cookie.indexOf(";",start);if(end==-1){end=document.cookie.length;}return decodeURI(document.cookie.substring(start,end));}}return "";}
<script language="JavaScript" type="text/javascript"> <!-- //获取当前时间 var date=new Date(); var expireDays=10; //将date设置为10天以后的时间 date.setTime(date.getTime()+expireDays*24*3600*1000); //将userId和userName两个cookie设置为10天后过期 document.cookie="userId=828; userName=hulk; expire="+date.toGMTString(); //--> </script>
<script language="JavaScript" type="text/javascript"> <!-- //获取当前时间 var date=new Date(); //将date设置为过去的时间 date.setTime(date.getTime()-10000); //将userId这个cookie删除 document.cookie="userId=828; expire="+date.toGMTString(); //--> </script>
document.cookie="userId=320; path=/";