獲取和設置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;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM