原文地址:https://segmentfault.com/a/1190000037559181
作者:Fw恶龙
本文首发于:思否
var CookieUtil = {
get: function(name) {
var reg = new RegExp('(^| )' + encodeURIComponent(name) + '=([^;]*)(;|$)')
var arr = document.cookie.match(reg);
if(arr != null) {
return decodeURIComponent(arr[2])
} else {
return null
}
},
set: function(name, value, options) {
options = options || {};
var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
var maxAge = '';
var fixIE = '';
if(typeof(options.maxAge) != 'undefined') {
maxAge = '; max-age=' + (options.maxAge * 60 * 60);
if(options.fixIE) {
fixIE = this.fixIE(options.maxAge * 60 * 60 * 1000);
}
}
var path = ''; // 设置路径
if(typeof(options.path) != 'undefined') {
path = '; path=' + options.path;
}
var domain = ''; // 设置域
if(typeof(options.domain) != 'undefined') {
domain = '; domain=' + options.domain;
}
var secure = ''; // 设置安全措施,为 true 则直接设置,否则为空
if(options.secure || false) {
secure = '; secure'
}
console.log([cookieText, maxAge, fixIE, path, domain, secure].join(''));
document.cookie = [cookieText, maxAge, fixIE, path, domain, secure].join('');
},
fixIE: function(time) {
// 修复IE不兼容max-age的问题
var d = new Date();
d.setTime(d.getTime() + time);
return '; expires=' + d.toGMTString()
},
clear: function(name) {
this.set(name, '', { maxAge: 0 })
}
};
CookieUtil.set('name', '恶龙');
console.log(CookieUtil.get('name'));
CookieUtil.clear('name');
console.log(CookieUtil.get('name'));
- 未测试IE各个版本,Edge是支持max-age的,查询Can I Use显示近几个版本IE支持该属性。
相关链接
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。