获取和设置cookie的方法(5种)
Posted 武侯668
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取和设置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种)的主要内容,如果未能解决你的问题,请参考以下文章
selenium 设置header中的cookie跳过验证码
需要一种有效的方法来避免使用 Laravel 5 重复代码片段
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段