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 31 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
Jan 29 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
JS正则表达式之非捕获分组用法实例分析
Dec 28 Javascript
vue router2.0二级路由的简单使用
Jul 05 Javascript
Vue-路由导航菜单栏的高亮设置方法
Mar 17 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
Aug 29 Javascript
Vue传参一箩筐(页面、组件)
Apr 04 Javascript
解决layer 动态加载select 失效的问题
Sep 18 Javascript
ZK中使用JS读取客户端txt文件内容问题
Nov 07 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
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
解析php取整的几种方式
2013/06/25 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
Saltstack快速入门简单汇总
2016/03/01 Python
python机器学习实战之树回归详解
2017/12/20 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
python实现动态创建类的方法分析
2019/06/25 Python
解决Django中多条件查询的问题
2019/07/18 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
Python requests上传文件实现步骤
2020/09/15 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
Python的collections模块真的很好用
2021/03/01 Python
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
C语言中break与continue的区别
2012/07/12 面试题
历史学专业毕业生求职信
2013/09/27 职场文书
预备党员转正考核材料
2014/06/03 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
河童之夏观后感
2015/06/11 职场文书
辩论会主持词
2015/07/03 职场文书
html5调用摄像头截图功能
2022/01/18 Javascript
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技