updated_at: 2024-12-14 19:02

쿠키 활용법

쿠키설정하기

function setCookie( name, value, expiredays ) 
{
  var todayDate = new Date();
  // todayDate.setHours(0,0,0,0);//이부분이 추가되면 그날 24시 00분으로 삭제된다.
  todayDate.setDate( todayDate.getDate() + expiredays );
  // 아래  domain=" + ".onstory.fun"+";" 는 옵션
  document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + "; domain=" + ".onstory.fun"+";";
}

설정된 쿠키값 가져오기

function getCookie( name ) {        
  var nameOfCookie = name + "=";
  var x = 0;
  while ( x <= document.cookie.length )
  {
    var y = (x + nameOfCookie.length);
    // document.cookie :  cookie1=value1; cookie2=value2;... 
    if ( document.cookie.substring( x, y ) == nameOfCookie ) {
      if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 ) 
        endOfCookie = document.cookie.length; 
      return unescape( document.cookie.substring( y, endOfCookie ) ); 
  }
  x = document.cookie.indexOf( " ", x ) + 1;
  if ( x == 0 )
    break;
  }
  return "";
}

자주 사용하는 팝업창 관련 스크립트

팝업창을 띄우는 본문에 삽입 자바스크립트 시작


var cookieval = new Date();
cookieval = cookieval.getTime();
var rStr_1 = "" + Math.random();
var rStr_2 = "" + Math.random();
var rStr_3 = "" + Math.random();
var rStr_4 = "" + Math.random();
var rStr_5 = "" + Math.random();
rStr_1 = rStr_1.charAt(2);
rStr_2 = rStr_2.charAt(2);
rStr_3 = rStr_3.charAt(2);
rStr_4 = rStr_4.charAt(2);
rStr_5 = rStr_5.charAt(2);
cookieval = cookieval + rStr_1 + rStr_2 + rStr_3 + rStr_4 + rStr_5;

// 쿠키를 확인하여 쿠키가 설정되지 않은 경우
if ( getCookie( "Notice" ) != "done" ) 
{ 
  noticeWindow  =  window.open('./popup.html','PopUpWindow','');
  noticeWindow.opener = self; 
}

팝업창 삽입 자바스크립트 시작

popup.html

function closeWin() 
{ 
  if ( document.forms[0].Notice.checked )
  //만약 새창에서 여러개의 form 을 사용하고 있으면 forms[0] 에서 공지창 안띄우기 form의 순서(0부터 시작)로 고쳐줍니다. 예: forms[4] 
  setCookie( "Notice", "done" , 1); 
  self.close(); 
} 
오늘 하루 이창 열지 않음 
<input type="checkbox" name="Notice" value="checkbox">
<a href="javascript:onclick=closeWin()">[닫기]</a>
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글