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 相关文章推荐
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
Mar 20 Javascript
IE6弹出“已终止操作”的解决办法
Nov 27 Javascript
javascript实现焦点滚动图效果 具体方法
Jun 24 Javascript
js onclick事件传参讲解
Nov 06 Javascript
js判断页面中是否有指定控件的简单实例
Mar 04 Javascript
一行命令搞定node.js 版本升级
Jul 20 Javascript
node网页分段渲染详解
Sep 05 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
Sep 24 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 Javascript
关于angular 8.1使用过程中的一些记录
Nov 25 Javascript
浅析vue中的nextTick
Dec 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实现变色验证码实例
2014/01/06 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
PHP学习记录之数组函数
2018/06/01 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
使用ES6语法重构React代码详解
2017/05/09 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
python创建关联数组(字典)的方法
2015/05/04 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Python3中的json模块使用详解
2018/05/05 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
利用python实现AR教程
2019/11/20 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
文秘人员工作职责
2014/01/31 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
稽核岗位职责范本
2015/04/13 职场文书
Nginx反向代理、重定向
2022/04/13 Servers
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL