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 相关文章推荐
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
Jan 24 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
js 获取经纬度的实现方法
Jun 20 Javascript
微信小程序 配置文件详细介绍
Dec 14 Javascript
JS将unicode码转中文方法
May 08 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
Jul 13 Javascript
vue+axios+element ui 实现全局loading加载示例
Sep 11 Javascript
Vue内部渲染视图的方法
Sep 02 Javascript
使用flow来规范javascript的变量类型
Sep 12 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
Vue 列表页带参数进详情页的操作(router-link)
Nov 13 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添加MySQL数据记录代码
2008/06/07 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP pear安装配置教程
2016/05/14 PHP
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
python 中文件输入输出及os模块对文件系统的操作方法
2018/08/27 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
python绘制汉诺塔
2021/03/01 Python
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
医学毕业生自我鉴定
2013/10/30 职场文书
设计总监岗位职责
2013/12/07 职场文书
考试不及格的检讨书
2014/01/22 职场文书
英文留学推荐信范文
2014/01/25 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
社区志愿者活动总结
2014/06/26 职场文书
营销计划书范文
2015/01/17 职场文书
环保宣传语大全
2015/07/13 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
PHP基本语法
2021/03/31 PHP
详解CSS故障艺术
2021/05/25 HTML / CSS
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
vue实现拖拽交换位置
2022/04/07 Vue.js