先说下对cookie的相关操作:
cookie的常用操作
设置存储cookie通过document.cookie就可以设置cookie,cookie的本质就是存储在浏览器端的字符串,字符串的格式的键值对的方式,cookie常用的参数有name,value,expires
name参数:存取的cookie名称
value参数:存取的cookie值
expires参数:过期时间
下面封装一个设置存储cookie的函数:
/**
* 创建和存储cookie
* @param {string} c_name cookie的名称
* @param {*} value 值
* @param {number} expiredays 过期天数
*/
function setCookie(c_name,value,expiredays){
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}
toGMTString() 方法可根据格林威治时间 (GMT) 把 Date 对象转换为字符串,并返回结果。
escape()方法可以对字符串进行编码
读取cookie
实际就是字符串操作,也可以利用正则,方法封装:
/**
* 读取cookie值
* @param {strinh} c_name 要获取的cookie键的名称。
*/
function getCookie(c_name){
if (document.cookie.length>0){
var c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1){
c_start=c_start + c_name.length+1;
var c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1){
c_end=document.cookie.length;
}
// unescape解码
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
unescape对字符串解码
判断是否存在cookie
/**
* 判断cookie是否存在
* @param {string} c_name 要判断的cookie名称
* @param {function} success 成功执行函数
* @param {function} err 失败函数
*/
function checkCookie(c_name){
var cookie=getCookie(c_name);
if (cookie!=null && cookie!=""){
// 如果cookie值存在,执行下面的操作。
return cookie
}else{
console.log('cookie不存在')
}
}
删除cookie
/**
* 删除cookie
* @param {string} c_name
*/
function delectCookie(c_name) {
setCookie(c_name, '', -1);//这里只需要把Cookie保质期退回一天便可以删除
}
cookie记录登录状态
登录时将用户名称等信息记录在cookie中,在需要登录的页面判断该cookie是否存在来判断用户是否已经登录。