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正则表达式匹配 div  style标签
Mar 15 Javascript
javascript HTML5 canvas实现打砖块游戏
Jun 18 Javascript
通过bootstrap全面学习less
Nov 09 Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 Javascript
解决layui 复选框等内置控件不显示的问题
Aug 14 Javascript
Vue项目数据动态过滤实践及实现思路
Sep 11 Javascript
微信小程序实现弹出层效果
May 26 Javascript
微信小程序分包加载代码实现方法详解
Sep 23 Javascript
小程序实现多个选项卡切换
Jun 19 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
Oct 05 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
composer.lock文件的作用
2016/02/03 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP Include文件实例讲解
2019/02/15 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
javascript如何使用bind指定接收者
2014/05/04 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
python写入已存在的excel数据实例
2018/05/03 Python
python 实现UTC时间加减的方法
2018/12/31 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
Lucene推荐的分页方式是什么?
2015/12/07 面试题
2014年英语教师工作总结
2014/12/03 职场文书
食品药品安全责任书
2015/05/11 职场文书
国富论读书笔记
2015/06/26 职场文书
社区安全温馨提示语
2015/07/14 职场文书
Python实现老照片修复之上色小技巧
2021/10/16 Python
vue动态绑定style样式
2022/04/20 Vue.js