JavaScript封装cookie操作

定义cookie()函数来封装cookie的所有操作
描述:
cookie()函数即可以写入指定的cookie信息,删除指定的cookie信息,同时也能够读取指定名称的cookie值,另外还可以指定cookie信息的有效期、有效路径、作用域和安全性选项设置

  • 指定一个参数表示读取指定名称的cookie值
  • 指定两个参数,则表示写入cookie信息,第一个参数表示名称,第二个参数表示值
  • 第三个参数传递选项信息,以字典形式存储在对象中进行传递。包括有效期、有效路径、有效域和是否加密数据传输
function cookie(name, value, options) {
	if (typeof value != "undefined") { //如果第二个参数存在
		options = options || {} //初始化选项参数
		if (value === null) { //value值为null则删除该cookie的值
			value = ""
			options.expires = -1
		}

		//如果存在时间参数,且只类型为number或者为具体时间,分别设置时间
		var expires = ''
		if (options.expires && (typeof options.expires == 'number' || options.expires.toGMTString)) {
			var date = null
			if (typeof options.expires == 'number') {
				//设置时间格式,把天数转换为毫秒数添加到时间对象中
				date = new Date()
				date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000))
			} else { //如果是时间格式则之间传递时间参数
				date = options.expires
			}
			expires = ";expires=" + date.toGMTString() //设置有效期
		}

		var path = options.path ? ";path=" + options.path : '' //设置路径
		var domain = options.domain ? ";domain=" + options.domain : "" //设置域
		var secure = options.secure ? ";secure" : '' //设置安全措施,为true则直接设置,否则为空
		//把所有字符串信息都存入数组,然后调用join方法转换为字符串,并写入cookie信息
		document.cookie = [name, '=', escape(value), expires, path, domain, secure].join('')

	} else { //如果第二个参数不存在,则读取指定cookie信息
		if (document.cookie && document.cookie != '') {
			var strCookie = document.cookie;
			var arrCookie = strCookie.split("; "); //分号后面必需有空格,可以输出document.cookie.splite(";")查看
			for (var i = 0; i < arrCookie.length; i++) {
				var arr = arrCookie[i].split("=");
				if (name == arr[0]) {
					return unescape(arr[1]);
				}
			}
			return "";
		}
	}
}

cookie("user", "cc", {
	expires: 10, //有效期10天
	path: '/', //整个站点有效
})
console.log(cookie("user"))

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值