Blog Content

    티스토리 뷰

    다음부터 새창 열지 않기


    방문객에게 공지를 띄우는 방법 중 하나가 새 창을 띄우는 것이죠. 하지만, 들어갈 때마다 같은 내용의 새 창이 계속해서 뜬다면, 방문객으로서는 짜증이 날 수도 있습니다. 그런 불편을 없애줄 수 있는 소스입니다.

    새 창이 뜨는 것을 원치 않는  방문객은 체크박스에 체크하고 닫기버튼을 누르면 다음부터는 새 창이 열리지 않습니다.

    새 창으로 띄울 html문서가 하나 더 있어야하기 때문에 필요한 html문서는 총 2개입니다. 본문서를 base.html, 작은 새 창으로 띄울 문서를 popup.html 이라고 이름 붙이겠습니다. (base.html 라는 주소로 들어왔을 때, 체크박스가 있는 popup.html 이라는 이름의 문서가 작은 창으로 열리는 식이 되겠죠.)


    base.html 의<head>와 </head>아래 소스를 넣습니다.

    <script language="JavaScript">
    <!--
    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 "";
    }

    function openCookieWin() {
    if (getCookie("ncook") != "done") {
    noticeWindow = window.open("popup.html","","width=500, height=300, top=200,left=100");
    noticeWindow.opener = self;
    }
    }
    //-->
    </script>


    base.html 의<body> 에 onLoad="openCookieWin()" 를 아래와 같은 방법으로 추가합니다.

    popup.html 의<head></head>사이에 아래 소스를 넣습니다.


    <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.checkClose.ncook.checked == true) {
    setCookie("ncook", "done" ,7);
    }
    self.close();
    }
    //-->
    </script>


    popup.html 의 <body> 에 체크박스와 닫기버튼을 넣습니다.

    <form name="checkClose">

      <input type="checkbox" name="ncook">다음부터 이 창 띄우지 않음
      <a href="#" onClick="closeWin()">닫기</a>
    </form>


    Comments