手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JS面向对象编程 for Cookie
JS面向对象编程 for Cookie
摘要:各位如果有更好的见解可讨论下!复制代码代码如下:/**JsClassCookie*Author:MrCo*/varCookie=functi...

各位如果有更好的见解可讨论下!

复制代码 代码如下:

/*

* 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面向对象编程 for Cookie】相关文章:

jquery.validate使用时遇到的问题

jQuery聚合函数实例

Javascript技术栈中的四种依赖注入详解

Javascript事件触发列表与解说

通过JavaScript脚本复制网页上的一个表格

解析Node.js基于模块和包的代码部署方式

javascript实现简单的进度条

EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)

学习Javascript面向对象编程之封装

js获取滚动距离的方法

精品推荐
分类导航