获取和设置cookie的方法(5种)
生活随笔
收集整理的這篇文章主要介紹了
获取和设置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;
}
}
總結
以上是生活随笔為你收集整理的获取和设置cookie的方法(5种)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 衡阳话搞歪把子怎么说?
- 下一篇: 中东石油经马六甲到中国要多少天?