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垃圾收集机制与内存泄漏详细解析
Nov 11 Javascript
jQuery对val和atrr(&quot;value&quot;)赋值的区别介绍
Sep 26 Javascript
使用js画图之饼图
Jan 12 Javascript
JS实现弹性菜单效果代码
Sep 07 Javascript
原生JavaScript编写canvas版的连连看游戏
May 29 Javascript
JavaScript中闭包的写法和作用详解
Jun 29 Javascript
AngularJS中比较两个数组是否相同
Aug 24 Javascript
微信小程序支付功能 php后台对接完整代码分享
Jun 12 Javascript
Vue-不允许嵌套式的渲染方法
Sep 13 Javascript
自己动手封装一个React Native多级联动
Sep 19 Javascript
layui弹出框Tab选项卡的示例代码
Sep 04 Javascript
浅谈Vue中render中的h箭头函数
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连接sql server 2005环境配置及问题解决
2014/08/08 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
JavaScript 空位补零实现代码
2010/02/26 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
原生js调用json方法总结
2018/02/22 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
python中sets模块的用法实例
2014/09/30 Python
python类继承用法实例分析
2015/05/27 Python
Python在线运行代码助手
2016/07/15 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
教师自荐信
2013/12/10 职场文书
物流专业求职计划书
2014/01/10 职场文书
简短大学毕业感言
2014/01/18 职场文书
诚信考试倡议书
2014/04/15 职场文书
医药销售自荐书
2014/05/29 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
公司人事管理制度
2015/08/05 职场文书
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android