目标
JavaScript设置cookie,读取cookie,删除cookie
使用方法
把下面的代码实例代码复制到一个js文件中,引到你需要使用的界面中
调用方法:
manager.putCookie('loginName', loginName);//用户名(临时存储)
manager.putCookie('isloginInvalid', "true", 0.02);//是否登陆失效(持久性存储30分钟)
代码实例
/**
* @author 蔡龙
* @version 2017-08-09
*/
(function(){
//manager命名空间,起隔离作用,防止同名变量冲突
if(!window.manager) {window.manager={};}
/**
* 写入cookie
* key cookie的键
* value cookie的值
* expires cookie有效时间,不写代表关闭浏览器失效
*/
manager.putCookie = function(key, value, expires){
manager.cookie(key, value, {path:'/',expires:expires});
};
/**
* 取出cookie
*/
manager.getCookie = function(key){
return manager.cookie(key);
};
/**
* 操作cookie的通用函数
*
* 示例0:写入一个临时cookie,关闭浏览器后失效 manager.cookie('键', '值');
* 示例1:写入一个持久cookie,manager.cookie(key, '0', {path:'/',expires:7});//7表示有效期7天
* 示例2:删除cookie manager.cookie(key, '0', {path:'/',expires:-1});//清空,把时间设置为负数,会让cookie立即过期
* (注意path要相同才能删除成功,如果cookie存储的path是/,删除时则要指定path为/)
* 示例3:写入一个cookie,7天后失效 manager.cookie('键', '值', {path:'/',expires:7});//7表示有效期7天
* 示例4:写入一个cookie,指定域名、路径、有效期 manager.cookie('键', '值', {domain:"www.test.com",path:'/',expires:7});
* 示例5:取cookie, manager.cookie('键') ,不能指定path路径,一个key存储在多个路径下,先返回目录层级长的。
* options.domain:指定域名
* options.path:指定路径,一般可指定/,若为null则写入当前页面的URL中取出当前路径
* options.expires:有效期,单位天
* options.secure:安全,true表示,该cookie只会在https下发送,而不会再http下发送
*/
manager.cookie=function (key, value, options) {
if (typeof value != 'undefined') {
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
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.toUTCString();
}
var path = options.path ? '; path=' + options.path : '';
var domain = options.domain ? '; domain=' + options.domain : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [key, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the key we want?
if (cookie.substring(0, key.length + 1) == (key + '=')) {
cookieValue = decodeURIComponent(cookie.substring(key.length + 1));
break;
}
}
}
return cookieValue;
}
}
})();