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的数据类型检测
Jul 10 Javascript
javascript动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
jquery插件uploadify实现带进度条的文件批量上传
Dec 13 Javascript
JavaScript自学笔记(必看篇)
Jun 23 Javascript
javascript中Number的方法小结
Nov 21 Javascript
js 事件的传播机制(实例讲解)
Jul 20 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 Javascript
vue组件中实现嵌套子组件案例
Aug 31 Javascript
js制作提示框插件
Dec 24 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 jQuery
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执行批量mysql语句的解决方法
2013/05/02 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
简单的python协同过滤程序实例代码
2018/01/31 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
python实现名片管理系统项目
2019/04/26 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
jupyter notebook清除输出方式
2020/04/10 Python
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
精细化工应届生求职信
2013/11/17 职场文书
职工运动会邀请函
2014/01/19 职场文书
药品采购员岗位职责
2014/02/08 职场文书
学生安全教育材料
2014/02/14 职场文书
个人工作表现评语
2014/04/30 职场文书
年终考核实施方案
2014/05/26 职场文书
新手上路标语
2014/06/20 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
教师个人师德总结
2015/02/06 职场文书
Python访问Redis的详细操作
2021/06/26 Python
SQL Server表分区删除详情
2021/10/16 SQL Server