JavaScript实现单值与多值Cookie的封装及操作
作者:青柠时间:2026-10-29 17:04:21浏览:646
本文提供JavaScript中操作Cookie的完整代码示例,涵盖单值与多值Cookie的设置、获取及清除功能。通过封装CookieUtil对象,简化了底层处理逻辑,便于开发者直接调用以管理浏览器Cookie数据。
JavaScript Cookie操作代码示例
本文直接展示相关实现代码。
具体实现代码如下:
var CookieUtil = (function () {
var Cookie = function () {
// 获取单值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, path, domain, secure) {
this.set(name, '', new Date(), path, domain, secure );
};
// 设置多值cookie
this.setAll = function(name, subCookies, expires, path, domain, 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('&'), expires, path, domain, 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,path,domain,secure) {
this.unset(name, '', new Date(), path, domain, secure);
};
// 清除指定多值cookie的子cookie
this.unsetSub = function(name, subname,path, domain, secure) {
var obj = this.getAll(name);
delete obj[subname];
this.setAll(name, obj, null, path, domain, secure);
};
};
return new Cookie();
})();
上述代码展示了JavaScript中处理单值和多值Cookie的完整方法,包括设置、获取与清除功能。若有任何疑问,欢迎留言交流。
作者最新文章
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
