js 处理Cookie 参考

##########

#先给大家看看一个网友的对js的介绍。我认为她讲得通俗易懂,然后再给大家奉献我的认识和函数

 

1、设置COOKIE数据:

最基本的COOKIE只包括COOKIE名和它的值,语法如下

document.cookie="Cookie_name=Cookie_value"

警告    不要在cookie名或值中使用如分号(;)、逗号(,)或者空格等特殊字符。

但是,假设我们需要保存的名或值有这些符号,怎么办呢?最简单的办法就是使用escape(string)方法,这个方法是用一个字符串参数,把其中的非字母或数字字符转换为等价的数值(16进制),然后在前面加上百分号。

如:document.cookie="book_name="+escape("Special Edition Using JavaScript")

结果为:Special%20Edition%20Using%20JavaScrpit

2、获取COOKIE值:

获取cookie的值要稍微麻烦一点,首先要把cookie属性保存到一个变量:cookie_string=document.cookie 从而得到一个形如 cookie_name=cookie_value 的字符串。然后取等号的索引位置,再使用String对象的substring()方法抽取值,如果值使用了escape()方法编码,还要用 unescape() 进行解码。cookie_string=unescape(document.cookie)

 

3、处理多个COOKIE:

定义多个COOKIE  documet.cookie="name1=value1;  name2=value2" 每个cookie之间用分号和一个空格分开

处理用 split() 方法,如: var cookie_array = document.cookie.split(";")

即 cookie_arrar[0]和[1]各为上面的COOKIE字符串。

4、终止日期:

var  days=30;

var  expire_date=new Date();

var ms_from_now=days*24*60*60*1000;

expire_date.setTime(expire_date.getTime()+ms_from_now);

var expire_string=expire_date.toGMTString();//转为GMT格式的String

document.cookie="count_cookie=visit_number;  expires="+expire_string;

5、其他参数:

document.cookie="name=value;  path=cookie_dir";//指定访问的目录,所有页面访问,则把path设为根目录(/)。

参数domain用于指定站点上可以访问cookie的主机名,如果没有指定,则默认为站点所在的WEB服务器的主机名。如果服务器只有一个主机名,则不需要考虑这个参数。如:domain=.domain.com

secure, 这是一个boolean值。如果为真,则该cookie只发往使用HTTPS(安全)协议连接的浏览器;如果为假(或忽略)则发给所有的浏览器,即使使用了不安全的HTTP协议。如:document.cookie="name1=value1;  true"。

6、删除COOKIE:

可以通过其过期日期设为过去的某个时间来删除,这将使得浏览器立即删除该cookie。为了简化,可以使用set_cookie()并参数赋一个负值,删除时必须指定与创建时相同的参数。如指定了 path 哪么例为:set_cookie("bgcolor_cookie","",-1,"/"); 如果要删除站点上所有的 cookie 重新开始,则不用指定 path。

另外cookie还有一些高级操作,我们留由下次再讲。如果大家认为好的话,请点一下上面的广告吧。

 

我的函数如下:

function  setCookie(sName, sValue, oExpires, sPath, sDomain, bSecure)
{
  
var  sCookie  =  sName  +   " = "   +  encodeURIComponent(sValue);
  
if (oExpires){
    sCookie 
+=   " ; expires= "   +  oExpires.toGMTString();
  }
  
  
if (sPath){
    sCookie 
+=   " ; path= "   +  sPath;
  }
  
  
if (sDomain){
    sCookie 
+=   " ; domain= "   +  sDomain;
  }
  
  
if (bSecure) {
    sCookie 
+=   " ; secure " ;
  }
  
  document.cookie 
=  sCookie;
}

function  getCookie(sName)
{
  
var  sRE  =   " (?:; )? "   +  sName  +   " =([^;]*);? " ;
  
var  oRE  =   new  RegExp(sRE);
  
  
if (oRE.test(document.cookie)){
    
return  decodeURIComponent(RegExp[ " $1 " ]);
  } 
else  {
    
return   null ;
  }
}

function  deleteCookie(sName, sPath, sDomain)
{
  setCookie(sName, 
'' new  Date( 0 ), sPath, sDomain);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值