javascript 中Cookie读、写与删除操作
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是否安全 *//* *原页面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 }
以上就是今天对cookie的解读。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!