废话不多说了,直接给大家贴代码了。
具体代码如下:
获取单值cookie
this.get = function(name) {
var start = document.cookie.indexOf(encodeURIComponent(name)) ;
var end = document.cookie.indexOf(';',start) ;
if(end == -) {
end = document.cookie.length;
}
return decodeURIComponent(document.cookie.substring(start+name.length+,end));
};
// 设置单值cookie
this.set = function(name,value,expires,path,domain,secure) {
var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
// 设置默认过期时间为七天
if(expires == undefined) {
var date = new Date();
date.setTime(date.getTime() + ****);
expires = date ;
}
if(expires instanceof Date) {
cookieText += "; expires=" + expires.toGMTString();
}
if(path != undefined) {
cookieText += "; path=" + path;
}
if(domain != undefined) {
cookieText += "; domain" + domain;
}
if(secure != undefined) {
cookieText += "; secure";
}
document.cookie = cookieText;
};
// 清除单值cookie
this.unset = function(name,secure) {
this.set(name,'',new Date(),secure );
};
// 设置多值cookie
this.setAll = function(name,subCookies,secure) {
var cookieText = ";" + encodeURIComponent(name) + "=",arr = new Array();
for(var attr in subCookies) {
arr.push([encodeURIComponent(attr)] + ":" + encodeURIComponent(subCookies[attr]));
}
this.set(name,arr.join('&'),secure);
};
// 获取多值cookie
this.getAll = function(name) {
var obj = {};
var arr = this.get(name).split('&');
for(var i =,len = arr.length; i < len; i++) {
var tmpArr = arr[i].split(':');
obj[decodeURIComponent(tmpArr[])] = decodeURIComponent(tmpArr[]);
}
return obj;
};
// 获取多值cookie的子cookie
this.getSub = function(name,subname) {
var obj = this.getAll(name);
return obj[subname];
};
// 清除指定的多值cookie
this.unsetAll = function(name,secure) {
this.unset(name,secure);
};
// 清除指定多值cookie的子cookie
this.unsetSub = function(name,subname,secure) {
var obj = this.getAll(name);
delete obj[subname];
this.setAll(name,obj,null,secure);
};
};
return new Cookie();
})();
以上代码就是本文给大家介绍JavaScript设置、获取、清除单值和多值cookie的方法,有哪里不清楚的地方欢迎给我留言。
原文链接:https://www.f2er.com/js/51676.html