JavaScript操作Cookie实例

发布时间:2020-11-25编辑:脚本学堂
本文介绍了JavaScript操作Cookie的例子,Cookie可以设置6个部分:name(名称)、value(值)、expires(过期时间)、path(路径)、domain(域)、secure(安全性) ,有需要的朋友参考下。

例子,js代码操作cookie数据。
 

复制代码 代码示例:
/*
关于Cookie:
    Cookie可以设置6个部分:name(名称)、value(值)、expires(过期时间)、path(路径)、domain(域)、secure(安全性)
    前两个是必须的,后4个是可选的
    名称和值:
 它们必须位于Cookie字符串的开头
 实例:
     document.cookie="UserName=Paul";
     则Cookie的名称是UserName,值是Paul
    过期时间:
 若没有设置过期时间,则在关闭页面之后,Cookie就失效
 过期时间的格式十分重要,特别是对于IE浏览器,它应该与toGMTString()方法返回的格式相同
 实例:
     document.cookie="UserName=Paul;expires=Tue, 28 Dec 2020 00:00:00 GMT;";
     或者
     var expireDate=new Date();
     expireDate.setMonth(expireDate.getMonth()+6);
     document.cookie="UserName=Paul;expires="+ expireDate.toGMTString()+";";
*/ 
 
//CookieFunction.js
function setCookie(cookieName,cookieValue,cookiePath,cookieExpires) 

    cookieValue = escape(cookieValue); 
    //由于cookie中是以;来区别几个数据的,所以在cookie内容的不能直接添加;字符的 
    //为了解决这个问题,使用escape()函数,将这种特殊字符转变成:%+十六进制的ASCII 类型的值 
    //比如:空格变为:%20   分号;变为:%3B 
    //与之对应的,解码使用:unescape()函数 
    if(cookieExpires=="") 
    { 
 var nowDate=new Date(); 
 nowDate.setMonth(nowDate.getMonth()+6);//默认添加六个月的有效期 
 cookieExpires=nowDate.toGMTString();//转变成合适的时间格式 
    } 
    if(cookiePath!="")cookiePath=";Path="+cookiePath; 
    document.cookie=cookieName+"="+cookieValue+";expires="+ cookieExpires + cookiePath; 

function getCookieValue(cookieName) 

    var cookieValue=document.cookie;//提取cookie字符串 
    var cookieStartsAt=cookieValue.indexOf(" "+cookieName+"=");//若找不到返回-1,找到返回位置 
    //这里查找" "+cookieName+"=",以免在无意间查找包含所需名称的Cookie名称或值 
    //例如,假如cookie名称为:xFoo、Foo、yFoo,则查找前面不包含空格的Foo,会优先匹配xFoo 
    if(cookieStartsAt==-1)cookieStartsAt=cookieValue.indexOf(cookieName+"="); 
    //若是-1,则代表该cookie不存在,或者该cookie位于Cookie字符串的开头,这时Cookie名称前也不包含空格,需要重新进行一次查找 
    if(cookieStartsAt==-1)cookieValue=null; 
    else 
    { 
 cookieStartsAt=cookieValue.indexOf("=",cookieStartsAt)+1;//Cookie值的起始部分是在=号之后 
 var cookieEndsAt=cookieValue.indexOf(";",cookieStartsAt);//一般是在;处结束 
 if(cookieEndsAt==-1)cookieEndsAt=cookieValue.length;//若Cookie中只有名称和值时,值就位于字符串最后,没有了;间隔,所以直接用字符串长度 
 cookieValue=unescape(cookieValue.substring(cookieStartsAt,cookieEndsAt)); 
    } 
    return cookieValue;