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 相关文章推荐
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
javascript 二分法(数组array)
Apr 24 Javascript
Javascript 遮罩层和加载效果代码
Aug 01 Javascript
利用JavaScript检测CPU使用率自己写的
Mar 22 Javascript
Javascript 实现复制(Copy)动作方法大全
Jun 20 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
Sep 14 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
Mar 16 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
AngularJS基础 ng-mouseleave 指令详解
Aug 02 Javascript
js转html实体的方法
Sep 27 Javascript
浅谈js中几种实用的跨域方法原理详解
Dec 02 Javascript
vue动态注册组件实例代码详解
May 30 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&amp;&amp;mysql)四
2006/10/09 PHP
php中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
pytorch构建网络模型的4种方法
2018/04/13 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
网上书店创业计划书
2014/01/12 职场文书
入学生会自荐书范文
2014/02/05 职场文书
模具专业自荐信
2014/05/29 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技