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 相关文章推荐
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
Dec 02 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
Dec 08 Javascript
JavaScript 用cloneNode方法克隆节点的代码
Oct 15 Javascript
JS动态获取当前时间,并写到特定的区域
May 03 Javascript
基于javascript实现动态时钟效果
Aug 18 Javascript
详解JavaScript的内置对象
Dec 07 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
Jan 04 Javascript
JS中SetTimeout和SetInterval使用初探
Mar 23 Javascript
vue源码入口文件分析(推荐)
Jan 30 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
May 20 Javascript
在layui tab控件中载入外部html页面的方法
Sep 04 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 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 注释规范
2012/03/29 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
Shopee越南:东南亚与台湾电商平台
2019/02/03 全球购物
小学教师国培感言
2014/02/08 职场文书
水电站项目建议书
2014/05/12 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
MySQL池化框架学习接池自定义
2022/07/23 MySQL