js操作cookie

本文详细介绍了JavaScript中操作Cookie的方法,包括添加、删除、读取Cookie,并通过实例展示了如何使用这些方法来管理浏览器存储的数据。重点在于理解JSON.stringify()、escape与unescape、cookieMap的处理以及document.cookie的使用。
摘要由CSDN通过智能技术生成

今天写的javascript添加,删除,和读取cookie的demo在这儿做个记录,其中有一下几个可能经常用到的地方做一个备注。

1、JSON.stringify(jsonObj) 将json对象转化为字符串对象;

2、escape对字符串进行编码,编码的目的是防止在cookie中出现特殊字符,用unescape转换编码后的字符串;

3、cookiMap.replace(/\s/g,"")去掉字符串中的空格;

4、document.cookie写入或读取cookie串。

 <script type="text/javascript">
	
	/*添加cookie*/
	function setCookie(name,value,outTime){
		var expdate=new Date();
		var outms=outTime*24*60*60*1000;//过期时间,以天为单位‘1’表示一天
		expdate.setTime(expdate.getTime()+outms);
		var cookieStr=name+"="+escape(value)+";expires="+expdate.toGMTString();
		//escape方法的作用是进行编码,主要防治value中有特殊字符
		document.cookie=cookieStr;
	}
	/*删除cookie
		cookie的删除并不是物理意义上的直接删除,
		而是将cookie的有效期设置为失效,然后由浏览器删除失效的cookie删除
	*/
	function deleteCookie(cookiename){
		var date = new Date();
		var outTime=date.getTime()-1000;//将cookie的有效期设置为失效
		date.setTime(outTime);
		document.cookie=cookiename+"='';expires="+date.toGMTString();
	}
	/*读取cookie*/
	function getCookie(cookieName){
		var cookieStr=document.cookie;
		var cookievalue="";
		if(cookieStr!=null &&cookieStr!=undefined){
			var arrayCookie=cookieStr.split(';');
			for(var i=0;i<arrayCookie.length;i++){
					var arrayDetail=arrayCookie[i].split('=');
					if(i==0){
						cookiMap='{"'+arrayDetail[0]+'":"'+arrayDetail[1]+'",';
					}else if(i==arrayCookie.length-1){
						cookiMap+='"'+arrayDetail[0]+'":"'+arrayDetail[1]+'"}';
					}else{
						cookiMap+='"'+arrayDetail[0]+'":"'+arrayDetail[1]+'",';
					}
				}
			}
			var s=cookiMap.replace(/\s/g,"");//去掉空格
			var cookieObj=JSON.parse(s);
		for(var item in cookieObj){
			if(item==cookieName){
				cookievalue=unescape(cookieObj[item]);
			}
		}
		return cookievalue;
	}

	window.οnlοad=function(){
		var jsonObj={"姓名":"傅红雪","年龄":"24","职业":"刺客"}
		setCookie("abc",JSON.stringify(jsonObj),2);//在cookie中写入json串
		setCookie("abd","hello word",2);// 写入cookie
		setCookie("abe","边城;浪子",2);
		var s={'abc':'{"姓名":"傅红雪","年龄":"24","职业":"刺客"}','abd':'hello word','abe':'编程;浪子'};
		deleteCookie('abe'); //删除cookie
		alert(getCookie('abe'));//根据key值获取cookie
	}
 </script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值