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 Konami Code 实现代码
Jul 29 Javascript
jQuery判断元素是否是隐藏的代码
Apr 24 Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
Jun 20 Javascript
关于vue中的ajax请求和axios包问题
Apr 19 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
vue+element实现打印页面功能
May 20 Javascript
深入探索VueJS Scoped CSS 实现原理
Sep 23 Javascript
Vue项目中如何使用Axios封装http请求详解
Oct 23 Javascript
angular8和ngrx8结合使用的步骤介绍
Dec 01 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 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-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
PHP7多线程搭建教程
2017/04/21 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
Python入门篇之编程习惯与特点
2014/10/17 Python
python实现清屏的方法
2015/04/30 Python
在Django的视图中使用form对象的方法
2015/07/18 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python实现分段线性插值
2018/12/17 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
医学类导师推荐信范文
2013/11/19 职场文书
大学生个人自荐信
2014/02/24 职场文书
银行进社区活动总结
2014/07/07 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
招商引资工作汇报
2014/10/28 职场文书
离职告别感言
2015/08/04 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android