javascript中Cookie读、写与删除操作
前言:
在这个前端横行的时候,页面之间的交互需要数据的传递,有的数据通过url传参的形式可以很好地解决,但是对于部分需要改变的参数,你如说从页面A到页面B选择数据,然后从页面B将数据再传到页面A(典型的栗子就是收货地址的选择),针对这一块我是通过存储cookie来解决的。
对于cookie的操作我给出了一些简单的封装,当然也借鉴了前辈们经验,自己糅合了一下,对于cookie的操作,无非是读写和删除,我们首先来看一下写的操作,有写才有读,进而进行删除等操作。
/**
*设置COOKIE
*@paramname设置cookie的属性名
*@paramvalue设置cookie的属性值
*@paramtime设置cookie的时间
*/
functionsetCookie(name,value,time){
time=time?parseFloat(time):0;
varexp=newDate();
exp.setTime(exp.getTime()+time);
//escape这种编码方式过时了改用encodeURIComponent
//document.cookie=name+"="+escape(value)+";expires="+(time?exp.toGMTString():'session');
document.cookie=name+"="+encodeURIComponent(value)+";expires="+(time?exp.toGMTString():'session');
}
我们有了写的操作了,那么我们再来看看对于读的操作。
/**
*获取cookie
*@paramname
*@returns{null}
*/
functiongetCookie(name){
vararr,reg=newRegExp("(^|)"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
//unescape这种解码方式好像过时了,可以采用decodeURIComponent解码方式
//returnunescape(arr[2]);
returndecodeURIComponent(arr[2]);
else
returnnull;
}
接下就是对cookie的删除操作了,其实这个操作很简单,就是将cookie设置过期,cookie就自动失效了
/**
*删除cookie
*@paramname
*/
functiondelCookie(name){
varexp=newDate();
exp.setTime(exp.getTime()-1);
varcval=getCookie(name);
if(cval!=null)
document.cookie=name+"="+cval+";expires="+exp.toGMTString();
}
以上就是对cookie的一些简单操作
接下来我们来谈一点cookie的深层次的问题:cookie的跨域
Js跨域同步cookie怎么实现
document.cookie="name="+"value;"+"expires="+"datatime;"+"domain="+""+"path="+"/path"+";secure";
/**
*删除cookie
*valueCookie值
*expires有效期截至(单位毫秒)
*path子目录
*domain有效域
*secure是否安全
*/
<iframesrc='http://网站:1234/test/Index'width='100'height='100'style="display:none"></iframe>
/*
*原页面js里window.location="http://另外一个网站:1234/GetCookie/Index?"+document.cookie;跳到另外一个站,另外一个站获取cookie,设置cookie
*/
varurl=window.location.toString();//获取地址
varget=url.substring(url.indexOf("liuph"));//获取变量和变量值
varidx=get.indexOf("=");//获取变量名长度
if(idx!=-1){
varname=get.substring(0,idx);//获取变量名
varval=get.substring(idx+1);//获取变量值
setCookie(name,val,1);//创建Cookie
}
上面是我整理给大家的,希望今后会对大家有帮助。
bwzzz
本文转载自中文网

本文转载自中文网
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h55026.shtml