封装cookie方法
1 分钟阅读
获取cookie的值
text
function getCookie (cname) {
var name = cname + '='
var decodedCookie = decodeURIComponent(document.cookie)
var ca = decodedCookie.split(';')
for (var i = 0; i <ca.length; i++) {
var c = ca[i]
while (c.charAt(0) === ' ') {
c = c.substring(1)
}
if (c.indexOf(name) === 0) {
return c.substring(name.length, c.length)
}
}
return ''
}设置cookie的值
text
document.cookie = 'username=zhangcong'
//设置一个username 其值为zhangcong为了防止有键值对为汉字等情况 我们最好进行一下编码
text
document.cookie = encodeURIComponent('username') + '=' + encodeURIComponent('zhangcong') + ';domain=chasingdream.cn' + ';expires=' + new Date('2018-1-1')cookie有个比较特殊的特性是,如果想要删除cookie,需要设置一个过期时间为当前时间以前的时间即可。
text
document.cookie = encodeURIComponent('username') + '=' + encodeURIComponent('zhangcong') + ';domain=chasingdream.cn' + ';expires=' + new Date('0')通过对这些的了解 我们来简单的封装一个cookie的库,方便我们去操作cookie
text
/**
* 实现简单 cookie 封装库
*/
// Cookie 对象
Cookie = {
/**
* cookie 设置方法
* @param {String} name 属性名
* @param {String} value 属性值
*/
set: function(name, value) {
document.cookie = encodeURIComponent(name) + '=' + value
},
/**
* cookie 获取方法
* @param {String} name 属性名
* @return {String} 返回对应的属性值
*/
get: function(name) {
var Name = name + '='
var decodedCookie = decodeURIComponent(document.cookie)
var cArr = decodedCookie.split(';')
for(var i = 0; i <cArr.length;i++){
var c = cArr[i]
if(c.charAt(0) == " "){
c = c.substring(1)
}
if(c.indexOf(Name)==0){
return c.substring(Name.length, c.length)
}
}
return ''
},
/**
* cookie 删除方法
* @param {String} name 属性名
*/
remove: function(name) {
document.cookie = encodeURIComponent(name) + '= ;expires=' + new Date(0)
}
}
Cookie.set('username', 'zhangcong'); // 增加 username=zhangcong cookie
Cookie.get('username'); // zhangcong
Cookie.remove('username'); // 删除 username 相关文章