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 iframe内的函数调用实现方法
Jul 19 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
Jan 15 Javascript
js点击选择文本的方法
Feb 09 Javascript
JS实现alert中显示换行的方法
Dec 17 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
javascript编程开发中取色器及封装$函数用法示例
Aug 09 Javascript
vue学习笔记之v-if和v-show的区别
Sep 20 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
Nov 04 Javascript
微信小程序缓存支持二次开发封装实现解析
Dec 16 Javascript
vue中的循环对象属性和属性值用法
Sep 04 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中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
Django的分页器实例(paginator)
2017/12/01 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
python中map的基本用法示例
2018/09/10 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
python实现人脸签到系统
2020/04/13 Python
python 解决函数返回return的问题
2020/12/05 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
医大实习自我鉴定
2013/12/07 职场文书
销售会计岗位职责
2014/03/15 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
化学教育专业自荐信
2014/07/04 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
刑事撤诉申请书
2015/05/18 职场文书
指导老师鉴定意见
2015/06/05 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python