js 操作 cookie

$(function(){ /** * version 1.0 * 功能:此文件旨在通过js操作cookie,包括cookie的读和写 * 作者:郭军周 * Email:[email protected] * 使用举例: * window.__cookie.setCookie(string key,string value,int time); * window.__cookie.getCookie(string key); * 几点说明: * 1:cookie 以字符串的形式保存在 document.cookie 中 * 2:window 对象持有 document 对象的只读引用。这决定了,我们可以通过 window.document.cookie 的 * 方式,获取这个 cookie 字符串,但这种方式不能够实现对cookie的赋值。即: * window.document.cookie = ‘aaa‘; 并不能改变cookie * 此时,我们应该通过 document.cookie = ‘aaa‘; 的方式进行对cookie的修改 * 3:对于 cookie 过期时间的几点说明: * 3.1:这个时间,以“毫秒”为单位,1000ms = 1s; * 3.2:只有当 cookie 中的该“键值对”还未过期时,document.cookie 中才有该键值对的字符串形式。 * 简言之,在获取 cookie 时,并不需要手动对过期时间进行验证,因为,如果过期,将得不到此值。 * 3.3:至于,该键值对,是否过期,以及过期的处理,是由浏览器本身来实现的。 * 4:对于设置 cookie 时 key,value,expire 的几点说明: * 4.1:推荐 window.__cookie.setCookie(string,string,int)。下面的调用方式,可能造成各种莫名的问题,不建议。 * window.__cookie.setCookie(1,2,30000); * window.__cookie.setCookie(‘‘,2,30000); * window.__cookie.setCookie(2,‘‘,30000); * window.__cookie.setCookie(3,‘‘,30000); * window.__cookie.setCookie(‘_‘,‘‘,30000); * window.__cookie.setCookie(-1,‘‘,30000); * window.__cookie.setCookie(‘;‘,‘‘,30000); * 4.2:setCookie 和 getCookie 的参数说明: * 并未对其参数做过多验证,比如:key 应该满足变量的命名规范。因为,php确实能够处理关联数组。 **/ window.__cookie = { ‘cookieEnabled‘ : window.navigator.cookieEnabled, ‘setCookie‘ : function(key,value,expire){ if(!this.cookieEnabled){ alert(‘浏览器未开启或者cookie功能!‘); return false; } var exdate = new Date(); exdate.setTime(exdate.getTime()+expire); var c_nvalue=escape(value) + ((expire==null) ? "" : "; expires="+exdate.toUTCString()); if(this.getCookie(key) == null){ document.cookie = key + "=" + c_nvalue + document.cookie; }else{ var c_value = window.document.cookie; var c_start = c_value.indexOf(" " + key + "="); if(c_start == -1){ c_start = c_value.indexOf(key + "="); } c_start = c_value.indexOf("=", c_start) + 1; var c_end = c_value.indexOf(";", c_start); if(c_end == -1){ c_end = c_value.length; } document.cookie = c_value.substring(0,c_start) + c_nvalue + c_value.substring(c_end,c_value.length); } }, ‘getCookie‘ : function(c_name){ if(!this.cookieEnabled){ alert(‘浏览器未开启或者cookie功能!‘); return false; } var c_value = window.document.cookie; var c_start = c_value.indexOf(" " + c_name + "="); if(c_start == -1){ c_start = c_value.indexOf(c_name + "="); } if(c_start == -1){ c_value = null; }else{ c_start = c_value.indexOf("=", c_start) + 1; var c_end = c_value.indexOf(";", c_start); if(c_end == -1){ c_end = c_value.length; } c_value = unescape(c_value.substring(c_start,c_end)); } return c_value; } }});

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。