js保存、获取、删除cookie的方法

作者: unvs 分类: Web前端 发布时间: 2011-08-25 21:58 ė118,903 views 6没有评论

 这两天学习、写了些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的方法

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部