2013年4月24日

关于js控制cookie的那点儿事


今天完成了网站的cookie的操作。功能是如果用户没有会员登陆那么添加的网址就保证到cookie里面,也就是本地保存。

关于cookie本身就是一患字符组成的,所以存取cookie都是字符的操作。

创建一个本站的cookie:

var exdate=new Date()

exdate.setDate(exdate.getDate()+9999)

document.cookie=name+”=”+encodeURI(url)+”;expires=”+exdate.toGMTString()+”;domain=.xiaoxinbsu.com”;

这里因为是保存网址,所以时间上是越长越好,我就干脆用了个9999天  。encodeURL这个方法的意思是转换URL的编码。

因为在cookie里会url会发生转义。domain这个是代表主机头的意思。有了这个在本站是全放行的。

 

取出网址的cookie,由于cookie中不一定全是你存的东西也有别的会用到。所以这里要做一个正则筛选,

//返回cookie中的网址

function getCookie() {

var cookies=document.cookie.split(“; “);//一个分号加一个空格

if (!cookies.length) {return “”;}

var array=new Array();

var pair=[“”,””];var nub=0;

for (var i=0;i<cookies.length;i++) {

pair = cookies[i].split(“=”);//以赋值号分隔,第一位是Cookie名,第二位是Cookie

var strRegex =”[a-zA-z]+://[^s]*”;

var patt1=new RegExp(strRegex);

if (patt1.test(encodeURI(pair[1]))){     //encodeURL 是cookie的编码转换

array[nub]=new Array();

for(var j=0;j<pair.length;j++)

array[nub][j]=pair[j];

nub++;

}

}

return array;

}

上面这个方法很简单,最后就是返回一个包括所有网址的数组。

删除cookie 在cookie中没有删除这个操作,那么要让一个cookie删除就只能通过让这个cookie过期就可以。

var exdate=new Date()

exdate.setDate(exdate.getDate()-99999)

document.cookie=arr[i][0]+”=”+encodeURI(arr[i][1])+”;expires=”+exdate.toGMTString()+”;domain=.jxlt10010.com”;

//删除cookie  过期

标签:,

微信扫一扫二维码访问