채택완료

24시간 팝업... 계속 그대로 나와요 ㅠㅠ

2018-03-16 (금) 22:09:55 4,216

1.

우선 html 코드 박스 내에 openWin('div_laypopup'); 이 부분에서

" openWin'이(가) 정의되지 않았습니다. " 라고 오류가 뜹니다.

스크립트 살펴봤지만 왜 정의가 되지 않았는지... 문제를 찾지 못했습니다.

2.

체크박스에 체크를 하면 내용이 사라지긴 합니다만... 새로고침 or 페이지 이동 하면

다시 그대로 뜹니다 ㅠㅠ 쿠키 값이 적용된 것이 아닌 것 같아요.

어떻게 하면 될까요? 도와주세요!!

Copy
<div id="div_laypopup">
    팝업 안 내용
    <input type="checkbox" name="close" value="OK" onclick="javascript:closeWin('div_laypopup', 1);"/>하루동안 이 창을 열지 않음
   </div>

   <script type="text/javascript">
   openWin('div_laypopup');
   </script>
Copy
// 창열기
function openWin( winName ) {
   var blnCookie = getCookie( winName );
   var obj = eval( "window." + winName );
   if( !blnCookie ) {
    obj.style.display = "block";
   }
}

// 창닫기
function closeWin(winName, expiredays) {
   setCookie( winName, "done" , expiredays);
   var obj = eval( "window." + winName );
   obj.style.display = "none";
}
function closeWinAt00(winName, expiredays) {
   setCookieAt00( winName, "done" , expiredays);
   var obj = eval( "window." + winName );
   obj.style.display = "none";
}

// 쿠키 가져오기
function getCookie( name ) {
   var nameOfCookie = name + "=";
   var x = 0;
   while ( x <= document.cookie.length )
   {
    var y = (x+nameOfCookie.length);
    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 "";
}

// 24시간 기준 쿠키 설정하기
// expiredays 후의 클릭한 시간까지 쿠키 설정
function setCookie( name, value, expiredays ) {
   var todayDate = new Date();
   todayDate.setDate( todayDate.getDate() + expiredays );
   document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}
|

답변 2개 / 댓글 6개

채택된 답변
+20 포인트

// openWin

if( !blnCookie ) {     obj.style.display = "block";    }

=>

blnCookie ? obj.style.display = 'none' : obj.style.display = "block";

답변에 대한 댓글 3개

답변 감사합니다. 그런데 오류는 해결되지 않았습니다 ㅠ
스크립트가 html 코드 위로 올라가야 됐었네요!! 도움 주셔서 정말 감사합니다!!!

openWin () , CloseWin () 을  setCookie() getCookie() 함수 밑으로 옮겨보세요

참조가 안되서 그런게 아닐까요

답변에 대한 댓글 3개

답변 감사하지만 그래도 안되네욤ㅠ,ㅠ
그럼 혹시 브라우저에서 쿠키 사용을 배제하는 옵션을 설정하셨던가 한건 아니신지 한 번 체크를...
체크 해봤는데 아무런 문제 없네요.. 혹시나해서 구글 크롬으로도 해봤는데도 똑같아요

쿠키를 보면 체크박스에 선택을 했을 때 사라지고 div_laypopup=done 이렇게 쿠키가
생성되긴 하지만 못 읽어오는 건지..ㅠ

답변을 작성하려면 로그인이 필요합니다.