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获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
javascript数字时钟示例分享
Apr 23 Javascript
很棒的Bootstrap选项卡切换效果
Jul 01 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
AngularJS 的$timeout服务示例代码
Sep 21 Javascript
Vue.js实现分页查询功能
Nov 15 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
Mar 23 jQuery
Angular6中使用Swiper的方法示例
Jul 09 Javascript
微信小程序前端自定义分享的实现方法
Jun 13 Javascript
JS函数基本定义与用法示例
Jan 15 Javascript
手写实现JS中的new
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中include和require的区别实例分析
2017/05/07 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
html读出文本文件内容
2007/01/22 Javascript
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
python使用urlparse分析网址中域名的方法
2015/04/15 Python
给Python入门者的一些编程建议
2015/06/15 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
python生成密码字典的方法
2018/07/06 Python
浅析python参数的知识点
2018/12/10 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python中几种自动微分库解析
2019/08/29 Python
python sorted方法和列表使用解析
2019/11/18 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
仓管岗位职责范本
2014/02/08 职场文书
销售总经理岗位职责
2014/03/15 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
离婚协议书格式
2015/01/26 职场文书
匿名检举信范文
2015/03/02 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python
MongoDB支持的索引类型
2022/04/11 MongoDB
Python使用openpyxl模块处理Excel文件
2022/06/05 Python
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis