javascript cookie操作类的实现代码小结附使用方法 |
第一种方法:cookie操作类,代码封装了,下面也有使用方法,大家可以参考下 。 复制代码 代码如下: String.prototype.Trim = function() { return this.replace(/^\s+/g,"").replace(/\s+$/g,""); } function JSCookie() { this.GetCookie = function(key) { var cookie = document.cookie; var cookieArray = cookie.split(;); var getvalue = ""; for(var i = 0;i<cookieArray.length;i++) { if(cookieArray[i].Trim().substr(0,key.length) == key) { getvalue = cookieArray[i].Trim().substr(key.length + 1); break; } } return getvalue; }; this.GetChild = function(cookiekey,childkey) { var child = this.GetCookie(cookiekey); var childs = child.split(&); var getvalue = ""; for(var i = 0;i < childs.length;i++) { if(childs[i].Trim().substr(0,childkey.length) == childkey) { getvalue = childs[i].Trim().substr(childkey.length + 1); break; } } return getvalue; }; this.SetCookie = function(key,value,expire,domain,path) { var cookie = ""; if(key != null && value != null) cookie += key + "=" + value + ";"; if(expire != null) cookie += "expires=" + expire.toGMTString() + ";"; if(domain != null) cookie += "domain=" + domain + ";"; if(path != null) cookie += "path=" + path + ";"; document.cookie = cookie; }; this.Expire = function(key) { expire_time = new Date(); expire_time.setFullYear(expire_time.getFullYear() - 1); var cookie = " " + key + "=e;expires=" + expire_time + ";" document.cookie = cookie; } } 用法: 一、设置cookie var cookie = new JSCookie(); //普通设置 cookie .SetCookie("key1","val1"); //过期时间为一年 var expire_time = new Date(); expire_time.setFullYear(expire_time.getFullYear() + 1); cookie .SetCookie("key2","val2",expire_time); //设置域及路径,带过期时间 cookie .SetCookie("key3","val3",expire_time,".cnblogs.com","/"); //设置带子键的cookie,子键分别是k1,k2,k3 cookie .SetCookie("key4","k1=1&k2=2&k3=3"); 二、读取cookie //简单获取 cookie .GetCookie("key1"); cookie .GetCookie("key2"); cookie .GetCookie("key3"); cookie .GetCookie("key4"); //获取key4的子键k1值 cookie .GetChild("key4","k1"); 三、删除 cookie .Expire("key1"); cookie .Expire("key2"); cookie .Expire("key3"); cookie .Expire("key4"); 第二种方法:cookie操作函数,脚本之家也是用的这个 。大家可以根据需要选择 。 复制代码 代码如下: function setCookie(name, value) //cookies设置JS { var argv = setCookie.arguments; var argc = setCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; if(expires!=null) { var LargeExpDate = new Date (); LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24)); } document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString())); } function getCookie(Name) //cookies读取JS { var search = Name + "=" if(document.cookie.length > 0) { offset = document.cookie.indexOf(search) if(offset != -1) { offset += search.length end = document.cookie.indexOf(";", offset) if(end == -1) end = document.cookie.length return unescape(document.cookie.substring(offset, end)) } else return "" } } 使用方法: 复制代码 代码如下: if(getCookie("yxjok")!="ok"){ //判断cookie中yxjok的值是不是为ok,不是则显示下面的广告 。 document.write(<div id="jb51_yxj"><a href="http://www.jb51.net" onclick="Closeyxj()" target="_blank"><img src="http://www.jb51.net/images/logo.gif" /></a></div>); } function Closeyxj(){ //关闭广告的现实 。并用cookies记录已经显示过了,这里的功能主要是关闭后一段时间不显示默认是24小时 。 $("jb51_yxj").style.display=none; setCookie("yxjok","ok",10); } function setADCookie(name, value) //主要是修改了cookies的过期时间,为几分钟 。 { var argv = setADCookie.arguments; var argc = setADCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; if(expires!=null) { var LargeExpDate = new Date (); LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*300)); } document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString())); } |