$(function(){
/**
* version 1.0
* 功能:此文件旨在通过js操作cookie,包括cookie的读和写
* 作者:郭军周
* Email:853547029@qq.com
* 使用举例:
* 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;
}
}
});
js 操作cookie
最新推荐文章于 2023-07-13 19:25:02 发布