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 无符号右移运算符
Apr 17 Javascript
Aptana调试javascript图解教程
Nov 30 Javascript
Javascript的构造函数和constructor属性
Jan 09 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
Mar 15 Javascript
Js获取下拉框选定项的值和文本的实现代码
Feb 26 Javascript
深入理解JS addLoadEvent函数
May 20 Javascript
深入浅析search 搜索框的写法
Aug 02 Javascript
AngularJS中watch监听用法分析
Nov 04 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
Jun 22 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
Mar 06 Javascript
Vue渲染过程浅析
Mar 14 Javascript
JavaScript实现简易计算器小功能
Oct 22 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
webpack多页面开发实践
2017/12/18 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
[08:40]Navi Vs Newbee
2018/06/07 DOTA
python opencv实现运动检测
2018/07/10 Python
Python几种常见算法汇总
2020/06/02 Python
详细分析Python垃圾回收机制
2020/07/01 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
python字典与json转换的方法总结
2020/12/28 Python
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
视图的作用
2014/12/19 面试题
数控技术专科生自我评价
2014/01/08 职场文书
秘书英文求职信范文
2014/01/31 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
党员演讲稿
2014/09/04 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby
python热力图实现的完整实例
2022/06/25 Python