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 相关文章推荐
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
Oct 31 Javascript
基于jquery的文章中所有图片width大小批量设置方法
Aug 01 Javascript
JS实现随机化快速排序的实例代码
Aug 01 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
iframe跨域通信封装详解
Aug 11 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
Aug 24 Javascript
图解javascript作用域链
May 27 Javascript
Vue中的transition封装组件的实现方法
Aug 13 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 Javascript
JS class语法糖的深入剖析
Jul 07 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
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
python 运算符 供重载参考
2009/06/11 Python
python reduce 函数使用详解
2017/12/05 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
python中random模块详解
2021/03/01 Python
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
自我鉴定三原则
2014/01/13 职场文书
社区十八大感言
2014/01/19 职场文书
实用的简历自我评价
2014/03/06 职场文书
产品设计开发计划书
2014/05/07 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
城管个人总结
2015/02/28 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB