JS面向对象编程 for Cookie


Posted in Javascript onSeptember 19, 2010

各位如果有更好的见解可讨论下!

/* 
* Js Class Cookie 
* Author:Mr Co 
*/ 
var Cookie = function(/*Cookie名称*/name){ 
this.$name = name; 
var allcookies = document.cookie; 
if(allcookies == '') return; 
var cookies = allcookies.split(';'); 
var cookie = null; 
for(var i = 0; i < cookies.length; i++){ 
if(cookies[i].substring(0,name.length + 1) == (name + '=')){ 
cookie = cookies[i]; 
break; 
} 
} 
if(cookie == null) return; 
var cookieval = cookie.substring(name.length + 1); 
var a = cookieval.split('&'); 
for(var i = 0; i < a.length; i++){ 
a[i] = a[i].split(':'); 
} 
for(var i = 0; i < a.length; i ++){ 
this[a[i][0]] = decodeURIComponent(a[i][1]); 
} 
} 
/* 
* 保存Cookie数据对象 
*/ 
Cookie.prototype.store = function(/*过期时间(1表示一天以此类推)*/daysToLive,/*当前Cookie有效地址*/path,/*当前Cookie有效域名访问*/domain,/*安全性*/secure){ 
var cookieval = ''; 
for(var prop in this){ 
if((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function')) continue; 
if(cookieval != '') cookieval += '&'; 
cookieval += prop + ':' + encodeURIComponent(this[prop]); 
} 
var cookie = this.$name + '=' + cookieval; 
if(daysToLive || daysToLive == 0){ 
cookie += '; max-age=' + (daysToLive * 24 *60 *60); 
} 
if(path) cookie += '; path=' + path; 
if(domain) cookie += ';domain=' + domain; 
if(secure) cookie += ';secure'; 
document.cookie = cookie; 
} 
/* 
* 移除Cookie数据对象指定属性 
*/ 
Cookie.prototype.remove = function(/*当前Cookie有效地址*/path,/*当前Cookie有效域名访问*/domain,/*安全性*/secure){ 
for(var prop in this){ 
if(prop.charAt(0) != '$' && typeof this[prop] != 'function') delete this[prop]; 
} 
this.store(0,path,domain,secure); 
} 
/* 
* 验证当前客户端浏览器是否支持Cookie 
*/ 
Cookie.IsAllowCookie = function(){ 
if(!navigator.cookieEnabled){ 
alert('温馨提示:\r\n您的浏览器当前已禁用页面Cookie!这可能会导致您在\r\n\r\n选择食物数据的时候刷新页面丢失您已选择的食物数据!\r\n\r\n建议您启用浏览器Cookie!'); 
return false; 
} 
return true; 
}

测试JS DEMO
function testFn(){ 
var cookie = new Cookie('Test'); 
if(!cookie.name || !cookie.color){ 
cookie.name = prompt('What is your name:',''); 
cookie.color = prompt('What is your favorite color:',''); 
} 
if(!cookie.visits) cookie.visits = 1; 
else cookie.visits++; 
cookie.store(10); 
alert('color:' + cookie.color + ' name:' + cookie.name + ' visits:' + cookie.visits); 
}
Javascript 相关文章推荐
一个js控制的导航菜单实例代码
Dec 03 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
Dec 20 Javascript
Javascript 计算字符串在localStorage中所占字节数
Oct 21 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
Sep 08 Javascript
JavaScript实现图片瀑布流和底部刷新
Jan 02 Javascript
JavaScript中 this 指向问题深度解析
Feb 21 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
Apr 07 Javascript
jquery与js实现全选功能的区别
Jun 11 jQuery
JavaScript实现淘宝京东6位数字支付密码效果
Aug 18 Javascript
微信小程序HTTP接口请求封装的实现
Feb 21 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
JavaScript 实现同时选取多个时间段的方法
Oct 17 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
Sep 19 #Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
Sep 19 #Javascript
jquery异步循环获取功能实现代码
Sep 19 #Javascript
JavaScript随机排序(随即出牌)
Sep 17 #Javascript
js下通过getList函数实现分页效果的代码
Sep 17 #Javascript
前端开发的开始---基于面向对象的Ajax类
Sep 17 #Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
Sep 17 #Javascript
You might like
用PHP调用数据库的存贮过程
2006/10/09 PHP
数据库的日期格式转换
2006/10/09 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
python实现简单的TCP代理服务器
2014/10/08 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
银河香水:Galaxy Perfume
2019/03/25 全球购物
什么是反射
2012/03/17 面试题
生产总经理岗位职责
2013/12/19 职场文书
交通事故检查书范文
2014/01/30 职场文书
小班教师个人总结
2015/02/05 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
Mysql Show Profile
2021/04/05 MySQL
Python OpenCV超详细讲解基本功能
2022/04/02 Python