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 相关文章推荐
五种js判断是否为整数类型方式
Dec 03 Javascript
Vue.js组件使用开发实例教程
Nov 01 Javascript
js实现移动端微信页面禁止字体放大
Feb 16 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
May 03 Javascript
js中的 || 与 &amp;&amp; 运算符详解
May 24 Javascript
在微信小程序里使用watch和computed的方法
Aug 02 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
Dec 06 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
Feb 17 Javascript
vue项目中将element-ui table表格写成组件的实现代码
Jun 12 Javascript
layui按条件隐藏表格列的实例
Sep 19 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
Jan 15 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的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
行政前台岗位职责
2013/12/04 职场文书
计算机专业毕业生求职信分享
2013/12/24 职场文书
上班早退检讨书
2014/01/09 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
施工材料员岗位职责
2014/02/12 职场文书
2014庆六一活动方案
2014/03/02 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
2014年防汛工作总结
2014/12/08 职场文书
2015年测量员工作总结
2015/05/23 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS