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 滑入滑出效果实现代码
Mar 27 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
Javascript的闭包详解
Dec 26 Javascript
jquery点击缩略图切换视频播放特效代码分享
Sep 15 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 Javascript
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
jQuery EasyUI开发技巧总结
Sep 26 jQuery
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
在layui框架中select下拉框监听更改事件的例子
Sep 20 Javascript
关于layui时间回显问题的解决方法
Sep 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导出Excel实例讲解
2016/01/24 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
用Python创建声明性迷你语言的教程
2015/04/13 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
python队列原理及实现方法示例
2019/11/27 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
镇创先争优活动总结
2014/08/28 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
公务员政审材料
2014/12/23 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
办公室规章制度范本
2015/08/04 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书