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 相关文章推荐
AutoSave/自动存储功能实现
Mar 24 Javascript
在jQuery中 关于json空对象筛选替换
Apr 15 Javascript
JS正则表达式获取分组内容的方法详解
Nov 15 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
Oct 17 Javascript
js使用setTimeout实现定时炸弹的方法
Apr 10 Javascript
深入分析Javascript跨域问题
Apr 17 Javascript
JS函数的几种定义方式分析
Dec 17 Javascript
在JavaScript中使用JSON数据
Feb 15 Javascript
vue中promise的使用及异步请求数据的方法
Nov 08 Javascript
vue动态配置模板 'component is'代码
Jul 04 Javascript
js+css3实现简单时钟特效
Sep 13 Javascript
vue实现简单数据双向绑定
Apr 28 Vue.js
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 URL验证正则表达式
2011/07/19 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
打开电脑上的QQ的python代码
2013/02/10 Python
python实现定制交互式命令行的方法
2014/07/03 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Django权限机制实现代码详解
2018/02/05 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
python数字类型math库原理解析
2020/03/02 Python
Python调用Redis的示例代码
2020/11/24 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
css3中transition属性详解
2014/09/02 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
九月份红领巾广播稿
2014/01/22 职场文书
银行开业庆典方案
2014/02/06 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
医者仁心观后感
2015/06/17 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js