Js 操作cookie

先写下cookie的组成:

name=<value>[; expires=<date>][; domain=<domain>][; path=<path>][; secure]

名称=<值>[; expires=<cookie要保存的毫秒值>][; domain=<域>][; path=<路径>][; 安全]

解释:

  name是cookie的名字; value是必须的,是cookie里面存储的值可以存放不重要的数据,比如用户名;

  剩下的只有expires和secure比较重要了,一个cookie的保存的时间,一个是cookie是否安全的设置。

下面会使用一个函数——escape(),这个函数比较重要,因为cookie值里可能包含分号、逗号或者空格,这个函数会将其编码。

当然,在读取cookie值时,必须使用对应的unescape()函数给值解码。

 

1. 向浏览器写回 cookie:

function setCookie(cookie_name, val, days){
            var date=new Date();
            //cookie保存时间的毫秒值
            date.setTime(date.getTime() + days*24*3600*1000);
            document.cookie=cookie_name + "=" + escape(val)+ 
                            "; expires ="+ expiration.toGMTString() + 
                            "; path=" + "/" + ";domain=" + "mydomain.com" + "; secure";
}

2. 获取浏览器的 cookie

//获取指定名称的cookie
function getCookie(cookie_name) {
    //获取cookie数组
    var cookies = document.cookie;
    var cookie_start = cookies.indexOf(cookie_name);
    // 如果找到了索引,就代表cookie存在
    // 反之,就说明不存在。
    if (cookie_start != -1) {
        //获取value的开始位置
        cookie_start += cookie_name.length + 1;
        //获取value的结束位置
        var cookie_end = cookies.indexOf(";", cookie_start);
        if (cookie_end == -1) {
            cookie_end = cookies.length;
        }
        var value = unescape(cookies.substring(cookie_start, cookie_end));
        return value;
    }
    //对应的cookie不存在
    return null;
}

3.  删除指定 cookie

function delCookie(cookie_name){
     var date = new Date();
     //将date设置为过去的时间
     date.setTime(date.getTime() - 1);
     document.cookie = cookie_name + "= m; expires =" +date.toGMTString();
}

 

将上面的汇总:

var cookie = {
    //设置cookie
    set:function(cookie_name, val, days){
            var date=new Date();
            //cookie保存时间的毫秒值
            date.setTime(date.getTime() + days*24*3600*1000);
            document.cookie=cookie_name + "=" + escape(val)+ 
                            "; expires ="+ expiration.toGMTString() + 
                            "; path=" + "/" + ";domain=" + "mydomain.com" + "; secure";
        },
    
    //获取指定名称的cookie
    get:function(cookie_name) {
            //获取cookie数组
            var cookies = document.cookie;
            var cookie_start = cookies.indexOf(cookie_name);
            // 如果找到了索引,就代表cookie存在
            // 反之,就说明不存在。
            if (cookie_start != -1) {
                //获取value的开始位置
                cookie_start += cookie_name.length + 1;
                //获取value的结束位置
                var cookie_end = cookies.indexOf(";", cookie_start);
                if (cookie_end == -1) {
                    cookie_end = cookies.length;
                }
                var value = unescape(cookies.substring(cookie_start, cookie_end));
                return value;
            }
            //对应的cookie不存在
            return null;
        }
        
    //删除cookie
    del:function(cookie_name){
            var date = new Date();
            //将date设置为过去的时间
            date.setTime(date.getTime() - 1);
         //获取要删除的 cookie
var co = get(cookie_name);
           if(co != null) { //不为空就删除 document.cookie
= cookie_name + "= m; expires =" + date.toGMTString();
           } } }

 

4  . 调用:

cookie.set("uesrName","msym",24);//设置为24天过期
alert(cookie.get("uesrName"));//获取cookie
cookie.del("uesrName");//删除cookie

 

 

 

 

 

.

posted @ 2017-06-26 16:15  码上猿梦  阅读(216)  评论(0编辑  收藏  举报