팝업창닫기에서 ... > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

팝업창닫기에서 ... 정보

팝업창닫기에서 ...

본문

<script language=JavaScript>
    function cookieSet(dayNum)
    {
    var cookieFlag, oDate, expiresDate;
    cookieFlag = "NOPOPnew";
    oDate = new Date();
    oDate.setDate(oDate.getDate() + dayNum);       
    expiresDate = oDate.toGMTString();
    if ( document.all.popupCheck.checked == 1 ) {
    document.cookie = "popnew=" + cookieFlag + "; expires=" + expiresDate + "; path=/; domain=daegaya.org";
    } else {
    document.cookie = "popnew=" + "" + "; expires=" + expiresDate + "; path=/; domain=daegaya.org";
    }
    }

</script>

<input type=checkbox name=popupCheck onclick="cookieSet(1);">24시간동안 이창을 다시 열지않음&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input type="button" onclick="javascript:{window.close()}" value="창닫기" class="button">

===========================
위 소스로 창닫기를 해도 새로고침을 하면
창이 계속 나오는데... 무슨 문제가 있는 걸까요?..
  • 복사

댓글 전체

잠도 안오고해서 봤는데..위에소스는 문제가있는가보네요..!!
대부분 인덱스에서쿠키를 받아서 실제띄워지는 팝업페이지에서 쿠키를제어하는 형식을 취하는데..
수연아빠님은 실제띄워지는 페이지에서 쿠키를 제어하는형식을 찾으셨네요..
근데...인터넷에서 검색해봐도 그런형태가 눈에 안띄어서...이참에 한번 허접한 짜집퍼 실력을 발휘해서
아래소스를 완성해서 올려드립니다. 실험해서 올려놓았으니 별탈은없을겁니다.
=============================================================
<script language="JavaScript">
<!--
function setCookie( name, value, expiredays ) {
var todayDate = new Date();
todayDate.setDate( todayDate.getDate() + expiredays );
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}

function closeWin() {
if ( document.Notice.chkbox.checked ){
setCookie( "Notice", "done" , 1 );
}
document.all['MCLUB'].style.visibility = "hidden";
}
//-->
</script>
<div id="MCLUB" align="left">
<form name="Notice">
<table width="470" border='0' cellspacing='0' cellpadding='0'>
  <tr>
    <td width="22"><a href="#"><input type="checkbox" name="chkbox" value="checkbox" onclick="closeWin();"></a></td>
    <td width="253">오늘은 이창을 다시 열지말자!!</td>
    <td width="195"><a href="javascript:closeWin();">문닫자!!부랄언다!!</a></td>
  </tr>
</table>
</form>
<div>
<script language="Javascript">
cookiedata = document.cookie;
if ( cookiedata.indexOf("Notice=done") < 0 ){
document.all['MCLUB'].style.visibility = "visible";
}
else {
document.all['MCLUB'].style.visibility = "hidden";
}
</script>
스크립에러는 사라졌는데..

체크박스에 체크를 하거나 닫기를 하면 창은 그대로 있는데 창 안에 것이 사라집니다..

창 안에 있는 내용이 없어지고 하얗게 바탕만 남고 팝업창은 그대로 있습니다..
위에소스중에<div id="MCLUB" align="left">에 스타일속성을 안정해줘서 그런것같습니다.
아래에 연습겸적용페이지를 간단하게 올려놓습니다. 레이어를 이용한 공지팝업창에 쿠키를 적용하는
스타일이라서 아래처럼 레이어속성을 정해줘야될거 같습니다...아니다...정해줘야합니다.
=======================================================

<script language="JavaScript">
<!--
function setCookie( name, value, expiredays ) {
var todayDate = new Date();
todayDate.setDate( todayDate.getDate() + expiredays );
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}

function closeWin() {
if ( document.Notice.chkbox.checked ){
setCookie( "Notice", "done" , 1 );
}
document.all['MCLUB'].style.visibility = "hidden";
}
//-->
</script>
<div id="MCLUB" style="width:200px; height:360px; position:absolute; left:15px; top:69px; z-index:200; visibility:hidden;" >
<form name="Notice">
여기다가 공지내용을 쓰면될것같음!!
<table width="470" border='0' cellspacing='0' cellpadding='0'>
  <tr>
    <td width="22"><a href="#"><input type="checkbox" name="chkbox" value="checkbox" onclick="closeWin();"></a></td>
    <td width="253">오늘은 이창을 다시 열지말자!!</td>
    <td width="195"><a href="javascript:closeWin();">문닫자!!부랄언다!!</a></td>
  </tr>
</table>
</form>
</div>
<script language="Javascript">
cookiedata = document.cookie;
if ( cookiedata.indexOf("Notice=done") < 0 ){
document.all['MCLUB'].style.visibility = "visible";
}
else {
document.all['MCLUB'].style.visibility = "hidden";
}
</script>
<table style="border-collapse:collapse;" cellspacing="0">
    <tr>
        <td width="100%" style="border-top-width:1; border-right-width:1; border-bottom-width:1; border-left-width:1; border-color:black; border-style:solid;">
            <p>레이어를이용한공지팝업창실험중!! 증권정보공유사이트 엠클럽!!
            http://www.ww0ww.net</p>
        </td>
    </tr>
</table>
==============================================================
위와같이해도안된다면....안돼는데....이크크크...
위 소스대로 하면 창은 그대로 있고 레이어만 사라지는 현상이 계속 나타납니다..(유독 나만 그런건지..)

그래서 이것 저것 섞다보니 이제는 잘 됩니다..

M=33님 답변 감사드립니다....
==============================================================

<SCRIPT language="JavaScript">
<!--

function setCookie( name, value, expiredays )
    {
        var todayDate = new Date();
        todayDate.setDate( todayDate.getDate() + expiredays );
        document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
        }

function closeWin()
{
        if ( document.forms[0].Notice.checked )

//만약 새창에서 여러개의 form 을 사용하고 있으면 forms[0] 에서 공지창 안띄우기 form의 순서(0부터 시작)로 고쳐줍니다. 예: forms[4]

                setCookie( "Notice", "done" , 1);

        self.close();
}

// -->
</SCRIPT>
<title>공지알림</title>
<body topmargin=0 leftmargin=0 bgcolor="#CCCCCC" align="center" valign="top">
<table style="border-collapse:collapse;" cellspacing="0" width="400"  height="400" border="0" cellpadding="0" bgcolor="white">
    <tr>
        <td width="400"  align="center"  valign="top">
                <td width="400" valign="top" bgcolor="white">
            <p>내용</p>
        </td>
        </td>
    </tr>
</table>
<table cellpadding="0" cellspacing="0" width="400">
<tr>
<form>
        <td width="400" height="39" valign="middle">

            <p align="center"><input type=CHECKBOX name="Notice" value="" color="#000000"><b>오늘은 그만 띄우기</b><a href="javascript:history.onclick=closeWin()"><b>[CLOSE]</b></a></p>
        </td>
</form>
</tr>
</table>
=====================================
© SIRSOFT
현재 페이지 제일 처음으로