zoukankan      html  css  js  c++  java
  • 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

    .

  • 相关阅读:
    vfpConn
    OAuth2.0
    开源日志组件ELMAH
    c# 动态数组 ArrayList
    OleDbHelper类
    系统权限管理框架
    Log4net数据表
    C#创建DBF自由库
    数字化校园passport
    使用 StateServer 保存 Session 解决 Session过期,登陆过期问题。
  • 原文地址:https://www.cnblogs.com/daimajun/p/7201055.html
Copyright © 2011-2022 走看看