学习笔记——JavaScript操作Cookie

来源:互联网 发布:金华市淘宝代运营 编辑:程序博客网 时间:2024/05/22 01:25
/*关于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.jsfunction 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,会优先匹配xFooif(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;}

原创粉丝点击