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实现手风琴效果
Nov 20 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
Jun 20 Javascript
jQuery获取table行数并输出单元格内容的实现方法
Jun 30 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 Javascript
webpack入门必知必会
Jan 16 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 Javascript
Angular2+如何去除url中的#号详解
Dec 20 Javascript
JS几个常用的函数和对象定义与用法示例
Jan 15 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
Sep 09 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批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
node.js入门教程
2014/06/01 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
Python正则表达式常用函数总结
2017/06/24 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
公司周年庆典邀请函
2014/01/12 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
应届毕业生求职信
2014/05/26 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
详解MongoDB的条件查询和排序
2021/06/23 MongoDB