当前位置: 澳门新濠3559 > 服务器运维 > 正文

cookie应用场景,再赋值给document.cookie就行了

时间:2019-12-26 07:51来源:服务器运维
复制代码 代码如下: functionclearCookie(卡塔尔{ var keys=document.cookie.match; if { for (var i =keys.length; i--;卡塔尔国 document.cookie=keys[i]+'=0;expires=' + new Date }} cookie在WEB更发中是常用的一个事物,我们

复制代码 代码如下: function clearCookie(卡塔尔{ var keys=document.cookie.match; if { for (var i = keys.length; i--;卡塔尔国 document.cookie=keys[i]+'=0;expires=' + new Date } }

cookie在WEB更发中是常用的一个事物,我们不光在js中能够用,在php中也会用到,下边我来介绍八个cookie操作类,能够对cookie实行各样读取,删除操作。

jqueryCookie的使用

争持于javascript,通过后端的php来操作cookie是更易于简单的。所以出于在此以前非常少通过JS去操作cookie,在行使javascript操作cookie时际遇了一些弯路,也享受出来,免得我们跟我犯相近的大谬不然。

cookie创建

主干措施(session cookie  有的时候cookie在浏览器关闭后会消失卡塔尔

              $.cookie('名字',"值")

万一想要给cookie设置过期时间

              $.cookie('名字',"值",{expires:过期岁月(天),}卡塔尔

假如想要给一定页面(路线)设置cookie

               $.cookie("名字","值",{path:"路径"})

得到cookie

               $.cookie("名字")

删除cookie

               $.cookie('名字',null)

即使想要删除相应路线上的cookie

                $.cookie('名字',null,{path:"路径"})

cookie应用处景

                只借令你想要存款和储蓄的值,在下一次展开页面还足以获取的意况下能够动用cookie

cookie能够将有个别值保存在本地,本地能够经过$.cookie去赢拿到相应的值


率先点,正是本人清楚document.cookie重返全部cookie组成的字符串,所以在安装cookie时,作者想当然的认为是将新cookie拼接到该字符串上,再赋值给document.cookie就能够了。

jsCookie的封装

想要封装cookie方法,就要理解怎么用js去增多cookie,以至获取cookie

            怎么才干增加cookie?

            js代码:document.cookie=“name=张三”;

当中name是key,张三便是其相应的value,在localhost下就足以查见到有一条有时cookie了

            怎么本事收获到cookie呢?

            js代码:var cookie=document.cookie;

那般就能够赢拿到具有的cookie了,获取到的格式为“key1=value1;+空格key2=value2"(这里就增多八个cookie,可自行尝试),获取其钦命value必要先将cookie转成数组,并且去掉空格,将前边的值切出,上边看代码:

var cookie=document.cookie;//得到到具备的cookie值

cookie=cookie.split(";")//此处的将获取的字符串举办以";"切割,获得三个数组

for(var i=0;i<cookie.length;i++){  //循环cookie(下面的操作将cookie分割成了数组卡塔尔

              cookie[i]=cookie[i].trim() //这里是循环cookie数组,将中间的空格去除掉

}

console.log(cookie[0].name)

cookie应用场景,再赋值给document.cookie就行了。由此地点的历程就能够取拿到相应的cookie的值了


上面举办增多和得到cookie的卷入

;(function  getCookie(_name){

               var str=_name+'=';

               varcookie=document.cookie;

               cookie=cookie.split(';')

    for(vari=0;i<cookie.length;i++){

                 cookie[i]=cookie[i].trim();

                  if(cookie[i].indexOf(str)==0){

                  return  cookie[i].slice(str.length)

                 }

}

return'';

}

console.log(document.cookie)

}(document,window))

通过测量试验,完全不是这么,document.cookie=””; 是充分或更新新的cookie,比如document.cookie=”myck=yes;”则增添了个名称叫myck的cookie;假设要同一时候加上多个cookie,document.cookie=”key1=1;key2=2;“ 就能够了。要是要足够过期时间,存储域等音讯,直接后边加上相关参数就可以。举个例子:document.cookie=’myck=yes; expires=expire_time;domain=domain’。

该操作完全不影响本来就有的非同名cookie。

其次点,设置cookie的过期时间时,笔者一无是处的感到是设置个时刻戳就行了,结果测来测去,发掘未有效,cookie保质期总是session周期。后来才意识要用标准字符串时间格式,形似”Mon Jul 23 二〇一一 20:08:10 丙胺博莱霉素T+0800 欧霉素T“。若是用1343045321299这种,则是没用的。

cookie.js文件

 代码如下

复制代码

var COOKIE=(function(){

var getDateString=function(offset){

var date=new Date();

date.setTime(+date+offset*1000);

return date.toGMTString();

},

getCookies=function(){

var cookie=document.cookie||'',

subs=cookie.split(/;s?/),

_subs,cks={};

for(var i=0;i<subs.length,subs[i];i++){

_subs=subs[i].split('=')

cks[unescape(_subs[0])]=unescape(_subs.slice(1).join('='));

}

return cks;

}

 

return {

refresh:function(){

this.cookies=getCookies();

return this;

},

has:function(key){

return this.cookies[key]!=null;

},

get:function(key){

return this.cookies[key];

},

set:function(key,value,expire,path,domain,secure){

var myck=escape(key)+'='+escape(value==null?'':value);

if(!isNaN(expire=parseFloat(expire)))

myck+=';expires='+getDateString(expire);

if(path)myck+=';path='+path;

if(domain&&domain!=location.hostname)myck+=';domain='+domain;

if(secure)myck+=';secure';

document.cookie=myck;

return this.refresh().has(key);

},

remove:function(key,path,domain){

var paths=[],

domains=[],

arr,self=this;

if(path){

paths=[path];

}else{

arr=location.pathname.match(/.*?/|.+$/g);

this.each(arr,function(i){

var a;

paths.push(a=arr.slice(0,i+1).join(''));

if(/[^/]+/$/.test(a)){

paths.push(a.slice(0,-1));

}

if(/[^/]$/.test(a)){

paths.push(a+'/');

}

});

}

 

if(domain){

domains=[domain];

}else{

arr=location.hostname.split('.');

this.each(arr,function(i){

domains.push(arr.slice(-i).join('.'));

});

domains.push('.'+domains[0]);

}

 

this.each(paths,function(){

var path=this+'';

self.each(domains,function(){

self.set(key,'',-1000,path,this+'');

});

});

 

return !!path||!!domain||!this.has(key);

},

clear:function(path,domain){

for(var key in this.cookies){

this.remove(key,path,domain);

}

return !!path||!!domain||function(){

for(var key in this.cookies){

return false;

}

return true;

}.call(this);

},

each:function(arr,func){

var i=0,j=arr.length;

for(;i<j;i++){

if(func.call(arr[i],i)===false){

break;

}

}

}

}.refresh();

})();

// 首先在页面中引进COOKIE.js

 代码如下

复制代码

//调用
总老板KIE.has(name卡塔尔(英语:State of Qatar); //检查评定是不是知名字为name的cookie
老总KIE.set(key,value,expire,path,domain卡塔尔(قطر‎; //设置叁个新cookie,true表示设置成功,false表示设置战败
总总监KIE.remove(name,path,domain卡塔尔(قطر‎; //删除名字为name的cookie,true表示删除成功,false表示删除战败
CEOKIE.get(name卡塔尔(قطر‎; //获取名叫name的cookie的值
老板KIE.clear(path,domain卡塔尔; //灭绝全体cookie

//注意:remove和clear方法,要是不安装path或domain,将会去除全体根域、子域、各种深度路径下的cookie。

...

编辑:服务器运维 本文来源:cookie应用场景,再赋值给document.cookie就行了

关键词: