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 相关文章推荐
use jscript with List Proxy Server Information
Jun 11 Javascript
js获取浏览器的可视区域尺寸的实现代码
Nov 30 Javascript
JSP跨iframe如何传递参数实现代码
Sep 21 Javascript
jquery解析JSON数据示例代码
Mar 17 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
Jun 15 Javascript
基于jquery和svg实现超炫酷的动画特效
Dec 09 Javascript
Bootstrap和Java分页实例第二篇
Dec 23 Javascript
如何使用Bootstrap创建表单
Mar 29 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
Nov 17 Javascript
[jQuery] 事件和动画详解
Mar 05 jQuery
vue使用vuex实现首页导航切换不同路由的方法
May 08 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实现支持加盐的图片加密解密
2016/09/09 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
React diff算法的实现示例
2018/04/20 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python中open函数的基本用法示例
2019/09/07 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
铭立家具面试题
2012/12/06 面试题
新闻网站实习自我鉴定
2013/09/25 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python