您的位置:首页 > Web前端 > JavaScript

JS设置cookie、读取cookie、删除cookie

2018-02-27 18:17 281 查看
JS设置cookie:

假设在A页面中要保存变量username的值(“张三”)到cookie中,key值为name,则相应的JS代码为:

document.cookie="name="+username;
//JS操作cookies方法!
//写cookies
function setCookie(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
setCookie("name","hayden");


JS读取cookie:

//假设cookie中存储的内容为:name=张三;password=123456
var username=document.cookie.split(";")[0].split("=")[1];


则在B页面中获取变量username的值的JS代码如下:

读取cookies

function getCookie(name){
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
alert(getCookie("name"));


删除cookies

function delCookie(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGM
4000
TString();
}
//如果需要设定自定义过期时间
//那么把上面的setCookie 函数换成下面两个函数就ok;
//程序代码
function setCookie(name,value,time){
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getsec(str){
var str1=str.substring(1,str.length)*1;
var str2=str.substring(0,1);
if (str2=="s"){
return str1*1000;
}else if (str2=="h"){
return str1*60*60*1000;
}else if (str2=="d"){
return str1*24*60*60*1000;
}
}


//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
setCookie("name","hayden","s20");


下面封装上面的方法,js操作cookie操作类封装

1 var cookie = {
2         set:function(key,val,time){//设置cookie方法
3             var date=new Date(); //获取当前时间
4             var expiresDays=time;  //将date设置为n天以后的时间
5             date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化为cookie识别的时间
6             document.cookie= key + "=" + val +";expires="+date.toGMTString();  //设置cookie
7         },
8         get:function(key){//获取cookie方法
9             /*获取cookie参数*/
10             var getCookie = document.cookie.replace(/[ ]/g,"");  //获取cookie,并且将获得的cookie格式化,去掉空格字符
11             var arrCookie = getCookie.split(";")  //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中
12             var tips;  //声明变量tips
13             for(var i=0;i<arrCookie.length;i++){   //使用for循环查找cookie中的tips变量
14                 var arr=arrCookie[i].split("=");   //将单条cookie用"等号"为标识,将单条cookie保存为arr数组
15                 if(key==arr[0]){  //匹配变量名称,其中arr[0]是指的cookie名称,如果该条变量为tips则执行判断语句中的赋值操作
16                     tips=arr[1];   //将cookie的值赋给变量tips
17                     break;   //终止for循环遍历
18                 }
19             }
20             return tips;
21         },
22         delete:function(key){ //删除cookie方法
23             var date = new Date(); //获取当前时间
24             date.setTime(date.getTime()-10000); //将date设置为过去的时间
25             document.cookie = key + "=v; expires =" +date.toGMTString();//设置cookie
26         }
27     }

cookie.set("uesr","sss",24);//设置为24天过期
alert(cookie.get("uesr"));//获取cookie
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: