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 相关文章推荐
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
javascript打开word文档的方法
Apr 16 Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 Javascript
jQuery解析json数据实例分析
Nov 24 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
Dec 11 Javascript
基于JavaScript实现简单的随机抽奖小程序
Jan 05 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
分析javascript原型及原型链
Mar 18 Javascript
javaScript实现游戏倒计时功能
Nov 17 Javascript
three.js实现圆柱体
Dec 30 Javascript
JavaScript实现拖拽和缩放效果
Aug 24 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实现查询手机归属地的方法详解
2017/04/28 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
JS高级笔记
2011/07/13 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
javascript中神奇的 Date对象小结
2017/10/12 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
在Django中创建动态视图的教程
2015/07/15 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
python 多进程队列数据处理详解
2019/12/23 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
员工考核管理制度
2014/02/02 职场文书
实习单位评语
2014/04/26 职场文书
工作说明书范文
2014/05/07 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
永不妥协观后感
2015/06/10 职场文书
锦旗赠语
2015/06/23 职场文书
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript