Heim > Web-Frontend > js-Tutorial > Hauptteil

JS面向对象编程 for Cookie_js面向对象

WBOY
Freigeben: 2016-05-16 18:19:30
Original
1092 Leute haben es durchsucht

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

复制代码 代码如下:

/*
* 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 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[i] = a[i].split(':');
}
for(var i = 0; 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('温馨提示: \n  您的浏览器当前已禁用页面Cookie!这可能会导致您在 \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);
}
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage