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 相关文章推荐
让innerHTML的脚本也可以运行起来
Jul 01 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
Dec 27 Javascript
用原生js做个简单的滑动效果的回到顶部
Oct 15 Javascript
初步认识JavaScript函数库jQuery
Jun 18 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 Javascript
JavaScript函数节流概念与用法实例详解
Jun 20 Javascript
JavaScript表单焦点自动切换代码
Jul 24 Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 Javascript
详解Vue生命周期的示例
Mar 10 Javascript
详解Vue组件之间通信的七种方式
Apr 14 Javascript
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
ant design vue的form表单取值方法
Jun 01 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
深入Nginx + PHP 缓存详解
2013/07/11 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
php防止sql注入的方法详解
2017/02/20 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
[05:31]DOTA2英雄梦之声_第04期_光之守卫
2014/06/23 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
基于python实现聊天室程序
2018/07/27 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
浅谈python3中input输入的使用
2019/08/02 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
简单说说tomcat的配置
2013/05/28 面试题
.NET程序员的数据库面试题
2012/10/10 面试题
优秀毕业生推荐信
2013/11/02 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
组工干部对照检查材料
2014/08/25 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
学历证明范文
2015/06/16 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
详解Redis主从复制实践
2021/05/19 Redis
pytorch 使用半精度模型部署的操作
2021/05/24 Python
如何利用Python实现一个论文降重工具
2021/07/09 Python
海弦WR-800F
2022/04/05 无线电