24시간 팝업... 계속 그대로 나와요 ㅠㅠ
본문
1.
우선 html 코드 박스 내에 openWin('div_laypopup'); 이 부분에서
" openWin'이(가) 정의되지 않았습니다. " 라고 오류가 뜹니다.
스크립트 살펴봤지만 왜 정의가 되지 않았는지... 문제를 찾지 못했습니다.
2.
체크박스에 체크를 하면 내용이 사라지긴 합니다만... 새로고침 or 페이지 이동 하면
다시 그대로 뜹니다 ㅠㅠ 쿠키 값이 적용된 것이 아닌 것 같아요.
어떻게 하면 될까요? 도와주세요!!
<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>
// 창열기
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
// openWin
if( !blnCookie ) { obj.style.display = "block"; }
=>
blnCookie ? obj.style.display = 'none' : obj.style.display = "block";
openWin () , CloseWin () 을 setCookie() getCookie() 함수 밑으로 옮겨보세요
참조가 안되서 그런게 아닐까요
답변을 작성하시기 전에 로그인 해주세요.