javascript中方便增删改cookie的一个类


Posted in Javascript onOctober 11, 2012

主要是通过对document.cookie字符串的分析来进行功能的组装的。
温习一下javascript中对cookie的操作:
增加cookie可以用document.cookie="userId=111";来实现
完整版可以用:document.cookie="userId=111;domain=.google.com;path=\;secure=secure;expire="+date.toGMTString();
可以设置cookie的过期时间,域名,路径
需要删除只要将expire的时间设为现在之前就可以了
现在上我修改的javascript.cookie.js的类

/* 
cookie helper class 
easy to write,get,delete 
*/ 
var myCookie={ 
get:function(name){ 
if(typeof name != "undefined") 
{ 
//if name given call the get value function 
return myCookie_get(name); 
}else{ 
//if name is not given,i want get all the cookie item 
return myCookie_getAll(); 
} 
}, 
add:function(name,value,options){ 
//write the cookie 
myCookie_add(name,value,options); 
}, 
delete:function(name){ 
//delete the cookie 
myCookie_add(name,null); 
} 
} 
String.prototype.Trim = function() 
{ 
return this.replace(/^\s+/g,"").replace(/\s+$/g,""); 
} 
/* 
cookie write function 
@name:the cookie name not null 
@value:the cookie value null==delete the cookie 
@option:{"expires":expire time;"path":/;"domain":localhost;"secure":secure} 
*/ 
function myCookie_add(name,value,options) 
{ 
if (typeof value != 'undefined') { // name and value given, set cookie 
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(); // use expires attribute, max-age is not supported by IE 
} 
var path = options.path ? '; path=' + options.path : ''; 
var domain = options.domain ? '; domain=' + options.domain : ''; 
var secure = options.secure ? '; secure' : ''; 
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); 
} 
} 
/* 
get the name cookie 
@name:the cookie's name 
*/ 
function myCookie_get(name) 
{ 
var cookieValue = null; 
if (document.cookie && document.cookie != '') { 
var cookies = document.cookie.split(';'); 
for (var i = 0; i < cookies.length; i++) { 
var cookie = cookies[i].Trim(); 
// Does this cookie string begin with the name we want? 
if (cookie.substring(0, name.length + 1) == (name + '=')) { 
cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 
break; 
} 
} 
} 
return cookieValue; 
} 
/* 
get all the cookie return as a json 
*/ 
function myCookie_getAll() 
{ 
var cookieArray = new Array(); 
var str=""; 
var temp; 
if (document.cookie && document.cookie != '') { 
var cookies = document.cookie.split(';'); 
for (var i = 0; i < cookies.length; i++) { 
var cookie = cookies[i].Trim(); 
temp=cookie.split('='); 
//take the 
cookieArray.push("{\"name\":\""+decodeURIComponent(temp[0])+"\",\"value\":\""+decodeURIComponent(temp[1])+"\"}"); 
} 
str=cookieArray.join(","); 
} 
str="["+str+"]"; 
return eval('('+str+')'); 
}

调用也是相当简单
myCookie.add("useraccount","admin",{"expires":5});//加入一个期限为5天的cookie 
alert(myCookie.get("useraccount"));//取出cookie 
cookies=myCookie.get();//得到所有的cookie 
for(var i=0;i<cookies.length;i++) 
{ 
alert(cookies[i]["name"]+":"+cookies[i]["value"]); 
} 
myCookie.delete("useraccount");//删除刚刚添加的cookie 
alert(myCookie.get("useraccount"));

Javascript 相关文章推荐
用javascript实现画板的代码
Sep 05 Javascript
防止jQuery ajax Load使用缓存的方法小结
Feb 22 Javascript
JavaScript 浏览器对象模型BOM使用介绍
Apr 13 Javascript
javascript文本模板用法实例
Jul 31 Javascript
关于JavaScript中事件绑定的方法总结
Oct 26 Javascript
微信小程序 侧滑删除(左滑删除)
May 23 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
微信小程序实现获取用户信息并存入数据库操作示例
May 07 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
Oct 31 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
浅谈javascript事件环微任务和宏任务队列原理
Sep 12 Javascript
Javascript异步流程控制之串行执行详解
Sep 27 Javascript
js事件(Event)知识整理
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
Oct 11 #Javascript
You might like
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
Python实现类继承实例
2014/07/04 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Python输入二维数组方法
2018/04/13 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
异步传递消息系统的作用
2016/05/01 面试题
临床专业自荐信
2014/06/22 职场文书
旅行社优秀创业计划书
2014/08/16 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
师德师风自查材料
2014/10/14 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书