`
西北小强
  • 浏览: 342761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js操作cookie

阅读更多

今天写的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.onload=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>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics