더 나은 통찰력이 있다면 토론해 주세요!
/*
* Js Class Cookie
* 작성자:Mr Co
*/
var Cookie = function(/*쿠키 이름*/name){
this.$name = name;
var allcookies = document.cookie;
if(allcookies == '') return;
var cookie = allcookies.split(';')
var cookie = null
for(var i = 0; i < cookie .length; i ){
if(cookies[i].substring(0,name.length 1) == (name '=')){
cookie = cookie[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.prototype.store = function(/*만료 시간(1은 하루를 의미함)*/daysToLive,/*현재 쿠키 유효 주소 */path, /*현재 쿠키 유효한 도메인 이름 액세스*/domain,/*security*/secure){
var cookieval = ''
for(var prop in this){
if(( prop.charAt( 0) == '$') || ((typeof this[prop]) == '함수')) 계속
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; ;domain=' domain;
if(secure) cookie = ';secure';
document.cookie = cookie;
}
/*
* 쿠키 데이터의 지정된 속성을 제거합니다. object
*/
Cookie.prototype.remove = function(/*현재 쿠키 유효한 주소*/path,/*현재 쿠키 유효한 도메인 이름 액세스*/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.IsAllowCookie = function(){
if(! navigator.cookieEnabled){
alert('미리 알림:
n 귀하의 브라우저는 현재 페이지 쿠키를 비활성화했습니다! 이로 인해 다음이 발생할 수 있습니다.
nrn음식 데이터를 선택하면 페이지를 새로고침하면 선택한 음식 데이터가 사라집니다! rnrn브라우저 쿠키를 활성화하는 것이 좋습니다!')
return false;
}
return
}
JS DEMO 테스트
코드 복사
코드는 다음과 같습니다. function testFn(){ var cookie = new Cookie(' 테스트');
if(!cookie.name || !cookie.color){
cookie.name = 프롬프트('이름은 무엇입니까:','')
cookie.color = 프롬프트 ('당신이 가장 좋아하는 색깔은 무엇입니까:','');
}
if(!cookie.visits) cookie.visits = 1
else cookie.visits
cookie.store(10) );
alert('color:' cookie.color ' 이름:' cookie.name ' 방문수:' cookie.visits)