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 相关文章推荐
JavaScript是否可实现多线程  深入理解JavaScript定时机制
Dec 22 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
Aug 28 Javascript
js判断字符长度及中英文数字等
Mar 19 Javascript
首页图片漂浮效果示例代码
Jun 05 Javascript
js判断手机号运营商的方法
Oct 23 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
Aug 02 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
react 应用多入口配置及实践总结
Oct 17 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
小程序登录之支付宝授权的实现示例
Dec 13 Javascript
uni-app 支持多端第三方地图定位的方法
Jan 03 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 XML数据解析代码
2010/05/26 PHP
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
详解Python中的文本处理
2015/04/11 Python
vscode 远程调试python的方法
2017/12/01 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
python实现微信自动回复功能
2018/04/11 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
python实现批处理文件
2020/07/28 Python
Python的collections模块真的很好用
2021/03/01 Python
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
实习生自荐信范文
2013/11/13 职场文书
毕业生的自我评价范文
2013/12/31 职场文书
万年牢教学反思
2014/02/15 职场文书
网络管理员岗位职责
2014/03/17 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python