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 相关文章推荐
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
Aug 28 Javascript
javascript onmouseout 解决办法
Jul 17 Javascript
jquery 循环显示div的示例代码
Oct 18 Javascript
详解AngularJS中的http拦截
Feb 09 Javascript
判断数组是否包含某个元素的js函数实现方法
May 19 Javascript
javascript 判断用户有没有操作页面
Oct 17 Javascript
详解JavaScript中的函数、对象
Apr 01 Javascript
JS中实现浅拷贝和深拷贝的代码详解
Jun 05 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
Sep 19 Javascript
Vue v-for循环之@click点击事件获取元素示例
Nov 09 Javascript
jQuery cookie的公共方法封装和使用示例
Jun 01 jQuery
详解JavaScript数据类型和判断方法
Sep 04 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取得一个类的属性和方法的实现代码
2011/05/22 PHP
php实现的SESSION类
2014/12/02 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
php封装的表单验证类完整实例
2016/10/19 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
Python抓取手机号归属地信息示例代码
2016/11/28 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
档案室主任岗位职责
2014/02/12 职场文书
商务英语广告词大全
2014/03/18 职场文书
社区服务标语
2014/07/01 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
LeetCode189轮转数组python示例
2022/08/05 Python