zoukankan      html  css  js  c++  java
  • 获取和设置cookie的方法(5种)

    //--------------------------11111111111
    var createCookie = function (a, b, c, d) {
        var d = d ? d : "/";
        if (c) {
            var e = new Date;
            e.setTime(e.getTime() + 24 * c * 60 * 60 * 1e3);
            var f = "; expires=" + e.toGMTString()
        } else var f = "";
        document.cookie = a + "=" + b + f + "; path=" + d
    };
    var readCookie = function (a) {
        var b = a + "=";
        var c = document.cookie.split(";");
        for (var d = 0; d < c.length; d++) {
            var e = c[d];
            for (; " " == e.charAt(0);)e = e.substring(1, e.length);
            if (0 == e.indexOf(b))return e.substring(b.length, e.length)
        }
        return null
    };
    //--------------------------22222222222222
    var a;
    a:{
        for (var b = document.cookie.length, c = 0; c < b;) {
    
            var e = c + 11; //e应该是一个起始位置。
            // 如果是这个名字
            if ("__ltjdvals=" == document.cookie.substring(c, e)) {
                // 寻找;的位置 在e之后;
                var f = e, g = document.cookie.indexOf(";", f);
    
                -1 == g && (g = document.cookie.length);
                a = unescape(document.cookie.substring(f, g)); //获得cookie的值
                break a
            }
            c = document.cookie.indexOf(" ", c) + 1;
            if (0 == c)break  //如果没有空格,跳出循环
        }
        a = null  //返回kong
    }
    //------
    var d = new Date;
    d.setTime(d.getTime() + 12E5);
    document.cookie = "__ltjdvals=" + escape("1927367272|baidu-pinzhuan|t_292769910_baidupi" +
            "nzhuan|cpc| d0a00922ee39486cb57e6fd7f7d85fe4_0_b67c5a26708b478ca5a77ad02567118e") +
        ";expires=" + d.toGMTString();
    //----------------------------3333333333333333
    function getCookieVal(offset) {
        var endstr = document.cookie.indexOf(";", offset); //结束位置
        if (endstr == -1) endstr = document.cookie.length; //没有找到就是cookie的条数
        return unescape(document.cookie.substring(offset, endstr));
    }
    function SetCookie(name, value, time) { //键、 值、过期时间
        var Days = 30;
        var exp = new Date();
        exp.setTime(exp.getTime() + 60 * 1000 * time);  //传入过期时间
        document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
    }
    function GetCookie(name) {
        var arg = name + "=";
        var alen = arg.length; //属性名的长度
        var clen = document.cookie.length;  //cookie的长度
        var i = 0;
        while (i < clen) {
            var j = i + alen;    // 属性名的长度
            if (document.cookie.substring(i, j) == arg) return getCookieVal(j);  //第一次循环得到一个cookie值。
            i = document.cookie.indexOf(" ", i) + 1; //一个新的起始位置,也就是下一个位置,  相当于是搜索了。
        }
        return null;
    }
    //------------------------4444444444444444444
    function getCookie(c_name){
        if (document.cookie.length>0){  //先查询cookie是否为空,为空就return ""
            c_start=document.cookie.indexOf(c_name + "=")  //通过String对象的indexOf()来检查这个cookie是否存在,不存在就为 -1  
            if (c_start!=-1){
                c_start=c_start + c_name.length+1  //最后这个+1其实就是表示"="号啦,这样就获取到了cookie值的开始位置
                c_end=document.cookie.indexOf(";",c_start)  //其实我刚看见indexOf()第二个参数的时候猛然有点晕,后来想起来表示指定的开始索引的位置...这句是为了得到值的结束位置。因为需要考虑是否是最后一项,所以通过";"号是否存在来判断
                if (c_end==-1) c_end=document.cookie.length
                return unescape(document.cookie.substring(c_start,c_end))  //通过substring()得到了值。想了解unescape()得先知道escape()是做什么的,都是很重要的基础,想了解的可以搜索下,在文章结尾处也会进行讲解cookie编码细节
            }
        }
        return ""
    }
    
    function setCookie(c_name, value, expiredays){
            var exdate=new Date();
            exdate.setDate(exdate.getDate() + expiredays);
             document.cookie=c_name+ "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
           } //  使用方法:setCookie('username','Darren',30)
    //--------------------555555555555
    //写cookies
    
    function setCookie(name,value)
    {
        var Days = 30;
        var exp = new Date();
        exp.setTime(exp.getTime() + Days*24*60*60*1000);
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }
    
    //读取cookies
    function getCookie(name)
    {
        var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    
        if(arr=document.cookie.match(reg))
    
            return unescape(arr[2]);
        else
            return null;
    }
    
    //删除cookies
    function delCookie(name)
    {
        var exp = new Date();
        exp.setTime(exp.getTime() - 1);
        var cval=getCookie(name);
        if(cval!=null)
            document.cookie= name + "="+cval+";expires="+exp.toGMTString();
    }
    //使用示例
    setCookie("name","hayden");
    alert(getCookie("name"));
    
    //如果需要设定自定义过期时间
    //那么把上面的setCookie 函数换成下面两个函数就ok;
    
    
    //程序代码
    function setCookie(name,value,time)
    {
        var strsec = getsec(time);
        var exp = new Date();
        exp.setTime(exp.getTime() + strsec*1);
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }
    function getsec(str)
    {
        alert(str);
        var str1=str.substring(1,str.length)*1;
        var str2=str.substring(0,1);
        if (str2=="s")
        {
            return str1*1000;
        }
        else if (str2=="h")
        {
            return str1*60*60*1000;
        }
        else if (str2=="d")
        {
            return str1*24*60*60*1000;
        }
    }
  • 相关阅读:
    ajax 笔记--调用WebService实现求两数之和
    多数据之间的连接操作集中几个.NET常用的方法(不完整)
    判断用户是否存在(通过参数来实现)
    我的机子放到公司了
    给同事过生日,我弄菜,给同事买饭,我值班。
    多数据之间的连接操作MSSQL(不完整)
    TreeView连接数据
    字符编码
    计算机基础
    python入门
  • 原文地址:https://www.cnblogs.com/wu-hou/p/6634639.html
Copyright © 2011-2022 走看看