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 相关文章推荐
$.get获取一个文件的内容示例代码
Sep 11 Javascript
javascript基于HTML5 canvas制作画箭头组件
Jun 25 Javascript
javascript中cookie对象用法实例分析
Jan 30 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
jQuery鼠标悬停内容动画切换效果
Apr 27 jQuery
在Vue组件中获取全局的点击事件方法
Sep 06 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 jQuery
vue封装一个简单的div框选时间的组件的方法
Jan 06 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
Sep 02 Javascript
超简单的微信小程序轮播图
Nov 22 Javascript
vue跳转页面的几种方法(推荐)
Mar 26 Javascript
浅谈React中组件逻辑复用的那些事儿
May 21 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
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
php写的简易聊天室代码
2011/06/04 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
jqPlot Option配置对象详解
2009/07/25 Javascript
validator验证控件使用代码
2010/11/23 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
React Router基础使用
2017/01/17 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
Python探索之SocketServer详解
2017/10/28 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
python+opencv识别图片中的圆形
2020/03/25 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
Python之pymysql的使用小结
2019/07/01 Python
python 线程的五个状态
2020/09/22 Python
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
先进个人获奖感言
2014/01/24 职场文书
最新离婚协议书范本
2014/08/19 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
小学大队干部竞选稿
2015/11/20 职场文书