테스트 사이트 - 개발 중인 베타 버전입니다

24시간 팝업... 계속 그대로 나와요 ㅠㅠ 채택완료

추팔소 7년 전 조회 4,012

1.

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

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

 

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

 

2.

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

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

 

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

 

 

 

</p>

<p>   <div id="div_laypopup">

    팝업 안 내용

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

   </div></p>

<p>   <script type="text/javascript">

   openWin('div_laypopup');

   </script></p>

<p>

 

 

 

</p>

<p>// 창열기

function openWin( winName ) {

   var blnCookie = getCookie( winName );

   var obj = eval( "window." + winName );

   if( !blnCookie ) {

    obj.style.display = "block";

   }

}</p>

<p>// 창닫기

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";

}</p>

<p>// 쿠키 가져오기

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 "";

}</p>

<p>// 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() + ";"

}</p>

<p>

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

답변 2개

채택된 답변
+20 포인트
7년 전

// openWin

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

=>

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

추팔소
7년 전
답변 감사합니다. 그런데 오류는 해결되지 않았습니다 ㅠ
슈와이
7년 전
http://shuai0.dothome.co.kr/demo/cookie.php
추팔소
7년 전
스크립트가 html 코드 위로 올라가야 됐었네요!! 도움 주셔서 정말 감사합니다!!!

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

j
7년 전

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

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

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

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

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

로그인