作家
登录

JS面向对象编程 for Cookie

作者: 来源:www.28hudong.com 2013-03-30 01:17:37 阅读 我要评论

各位如果有更好的见解可讨论下! 复制代码 代码如下: /* * 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('温馨提示:rn  您的浏览器当前已禁用页面Cookie!这可能会导致您在rnrn选择食物数据的时候刷新页面丢失您已选择的食物数据!rnrn建议您启用浏览器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); }

  推荐阅读

  Js智能判断浏览器是关闭还是刷新的代码

Js智能判断浏览器是关闭还是刷新 关闭或刷新浏览器试试! [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]>>>详细阅读


本文标题:JS面向对象编程 for Cookie

地址:http://www.17bianji.com/kaifa2/JS/25683.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)