Cookie是JavaScript中的一种机制,可以实现严格的跨页面全局变量的要求。
Cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。 在Cookie设置中,用escape()函数进行编码,可避免乱码和特殊字符问题; 当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值。 设置Cookie时可以直接给document.cookie赋值: document.cookie="userId=828"; document.cookie="userName=hulk"; 而且后面的值不会覆盖前面的值,它具有一种累加机制。 cookie的值可以由document.cookie直接获得,但这样获取的是所有的cookie值;要通过一指定cookie名称来获得所对应的值,则需做一些处理。构造通用的cookie处理函数:
1.添加一个cookie:addCookie(name,value,expireHours) 该函数接收3个参数:cookie名称,cookie值,以及在多少小时后过期。这里约定expireHours为0时不设定过期时间,即当浏览器关闭时cookie自动消失。该函数实现如下: <script language="JavaScript" type="text/javascript"> <!-- function addCookie(name,value,expireHours){ var cookieString=name+"="+escape(value); //判断是否设置过期时间 if(expireHours>0){ var date=new Date(); date.setTime(date.getTime+expireHours*3600*1000); // 转换为毫秒 cookieString=cookieString+"; expire="+date.toGMTString(); } document.cookie=cookieString; } //--> </script> 2.获取指定名称的cookie值:getCookie(name)该函数返回名称为name的cookie值,如果不存在则返回空,其实现如下: <script language="JavaScript" type="text/javascript"> <!-- function getCookie(name){ var strCookie=document.cookie; var arrCookie=strCookie.split("; "); // 将多cookie切割为多个名/值对 for(var i=0;i<arrCookie.length;i++){ // 遍历cookie数组,处理每个cookie对 var arr=arrCookie[i].split("="); // 找到名称为userId的cookie,并返回它的值 if(arr[0]==name) return arr[1]; } return ""; } //--> </script> 3.删除指定名称的cookie:deleteCookie(name)该函数可以删除指定名称的cookie,其实现如下:<script language="JavaScript" type="text/javascript">
<!-- function deleteCookie(name){ var date=new Date(); date.setTime(date.getTime()-10000); // 删除一个cookie,就是将其过期时间设定为一个过去的时间 document.cookie=name+"=v; expire="+date.toGMTString(); } //--> </script> 原文链接: