js保存、获取、删除cookie的方法
这两天学习、写了些web客户端的js代码,下面总结下分享给大家,主要为js保存、获取cookie和js获取各种类型的控件值的方法:
1、js保存cookie
<script type="javascript">
function setCookie(name,value){ //name为cookie的名称,value为name值
var days = 10; //保存天数,可作为参数传进来
var expires = new Date(); //建立日期变量
expires.setTime(expires.getTime() + days * 30 * 24 * 60 * 60 * 1000); //expires过期时间 = 当前时间 +过期时间(秒)
var str = name + ‘=’ + value +’;expires=’ + expires.toGMTString(); //将值及过期时间一起保存至cookie中(需以GMT格式表示的时间字符串)
//var str = name + ‘=’ + escape(value) +’;expires=’ + expires.toGMTString();
document.cookie = str;
}
</script>
下面为通用版保存cookie
<script language="JavaScript" type="text/javascript">
<!–
function addCookie(name,value,expireHours){
var cookieString=name+"="+escape(value);
if(expireHours>0){ //判断是否设置过期时间
var date=new Date();
date.setTime(date.getTime+expireHours*3600*1000);
cookieString=cookieString+"; expire="+date.toGMTString();
}
document.cookie=cookieString;
}
//–>
</script>
蓝色部分解释:
方法是用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于 cookie值中,而且使用此种方案还可以避免中文乱码的出现。
例如:
document.cookie="str="+escape("I love js");
相当于:
document.cookie="str=I%20love%20js";
当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值
2、js获取cookie值
介绍两种方法:
a.常规的循环字符输出方法
function getCookie(name){//name为cookie名称
var strcookie = document.cookie;//获取cookie字符串
var arr = strcookie.split(‘;’); //分割cookie
for(var i = 0;i<arr.length;i++){
var arrStr = arr.split(‘=’); //对各个cookie进行分割
if(arrStr[0] == name) return arrStr[1]; //判断是否存在cookie名称为name并输出
}
return ""; //返回
}
b.使用unescape获取cookie方法
function getCookie(name){
var _password = document.getElementById(‘password’);
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); //通过正则表达式获取cookie为name的字符组
if(arr!=null){
return unescape(arr[2]); //输入返回
}
return ”;
}
3、删除cookie
<script language="JavaScript" type="text/javascript">
<!–
//获取当前时间
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
//将userId这个cookie删除
document.cookie="userId=828; expire="+date.toGMTString();
//–>
</script>
<script language="JavaScript" type="text/javascript">
<!–
function deleteCookie(name){
var date=new Date();
date.setTime(date.getTime()-10000);
document.cookie=name+"=v; expire="+date.toGMTString();
}
//–>
</script>
更多详细请查看:http://love2java.iteye.com/blog/208031 (里面还包含:指定可访问cookie的路径、指定可访问cookie的主机名 )
本来还总结了获取各种服务器控件值的方法(参考网址:http://apps.hi.baidu.com/share/detail/15346811),但是操作不慎,没有保存,悲剧,心都凉了,不写了
本博文章基本上属于原创或收集整理,都是心血结晶。
欢迎转载分享,转载请注明出处,谢谢!
本文地址:js保存、获取、删除cookie的方法