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 选项卡效果(JS与HTML的分离)
Apr 01 Javascript
javascript Array数组对象的扩展函数代码
May 22 Javascript
js replace正则表达式应用案例讲解
Jan 17 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
Jan 23 Javascript
javascript中scrollTop详解
Apr 13 Javascript
原生js和jQuery写的网页选项卡特效对比
Apr 27 Javascript
基于JavaScript怎么实现让歌词滚动播放
Nov 03 Javascript
编写高质量JavaScript代码的基本要点
Mar 02 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
基于bootstrap的选择框插件icheck
Dec 23 Javascript
js实现百度搜索提示框
Feb 05 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
Dec 28 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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
jQuery的学习步骤
2011/02/23 Javascript
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
python验证码识别实例代码
2018/02/03 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
使用Python实现画一个中国地图
2019/11/23 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
美术指导求职信
2014/03/17 职场文书
火锅店的活动方案
2014/08/15 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript