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之可拖动的iframe效果代码
Aug 01 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
Node.js Addons翻译(C/C++扩展)
Jun 12 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
Webpack实现按需打包Lodash的几种方法详解
May 08 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
Vue列表页渲染优化详解
Jul 24 Javascript
Angular 2.0+ 的数据绑定的实现示例
Aug 09 Javascript
vuex的简单使用教程
Feb 02 Javascript
解决Vue打包之后文件路径出错的问题
Mar 06 Javascript
解决vue路由name同名,路由重复的问题
Aug 05 Javascript
vue 图片裁剪上传组件的实现
Nov 12 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
js友好的时间返回函数
2016/08/24 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
python使用Matplotlib画条形图
2020/03/25 Python
python实现两张图片的像素融合
2019/02/23 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
思想品德课教学反思
2014/02/10 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
公司开会通知
2015/04/20 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
高中化学教学反思
2016/02/22 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python