팝업레이어 24시간 닫기

팝업레이어 24시간 닫기

QA

팝업레이어 24시간 닫기

답변 4

본문

기존 팝업 레이어(newwin.inc.php)에는 임의로 수정한 스타일이 적용되어 있고 그외에 새창을 만들어서 기본 스타일 팝업을 직접 제작해 넣었습니다 

기존 팝업은 닫기, 24시간 닫기가 다 잘 적용되는데 직접만든 팝업만 24시간 닫기가 적용이 안되더라구요

한 페이지에 팝업이 여러개 있을때 쿠키가 한쪽만 읽을수 있는건지 다른 해결 방법이 있을까요?

 

<div id="hd_pops_100" class="hd_pops100" style="width:500px;">

    <div class="hd_pops_con" style="width:100%">

            <img src="/img/popup/popup.jpg" alt="">

        </a>

    </div>

    <div class="hd_pops_footer">

        <button class="hd_pops_reject hd_pops_100"><strong>24</strong>시간 동안 다시 열람하지 않습니다.</button>

        <button class="hd_pops_close hd_pops_100">닫기</button>

    </div>

</div>

 

 

 

<script>

$(function() {

    $(".hd_pops_reject").click(function() {

        var id = $(this).attr('class').split(' ');

        var ck_name = id[1];

        var exp_time = parseInt(id[2]);

        $("#hd_pops_100").css("display", "none");

        set_cookie(ck_name, 1, exp_time, g5_cookie_domain);

    });

    $('.hd_pops_close').click(function() {

        var idb = $(this).attr('class').split(' ');

        $('#hd_pops_100').css('display','none');

       

        var hd_pops_length = $('.hd_pops:visible').length;

       

        if($('.hd_pops:visible').length == 0){

            $('#hd_pop_fixed').css('display','none');

        }

    });

    $("#hd_pops_100").css("z-index", 1000);

 

});

 

</script>

이 질문에 댓글 쓰기 :

답변 4

스크립트로 쿠키를 읽어서  시간을 기록하는 부분이 누락된듯합니다. 

아래 소스코드를 올려드리오니 참고해서 적용해보시길 바랍니다.


    // 쿠키 생성 함수
    function setCookie(cName, cValue, cDay){
        var expire = new Date();
        expire.setDate(expire.getDate() + cDay);
        cookies = cName + '=' + escape(cValue) + '; path=/ '; // 한글 깨짐을 막기위해
        if(typeof cDay != 'undefined') cookies += ';expires=' + expire.toGMTString() + ';';
        document.cookie = cookies;
    }
    
    // 쿠키 가져오기 함수
    function getCookie(cName) {
        var x, y; var val = document.cookie.split(';');
        for (var i = 0; i < val.length; i++) {
            x = val[i].substr(0, val[i].indexOf('='));
            y = val[i].substr(val[i].indexOf('=') + 1);
            x = x.replace(/^\s+|\s+$/g, ''); // 앞과 뒤의 공백 제거하기
            if (x == cName) {
                return unescape(y);
                // unescape로 디코딩 후 값 리턴
                }
        }
    }
    
    
    // 팝업창 닫기
    function closeWin(popId) {
        document.getElementById(popId).style.display = "none";    
    }

    // 오늘 하루 보지 않기 닫기
    function todaycloseWin(cookiename) {
        setCookie(cookiename, "done" , 1);     // 저장될 쿠키명 , 쿠키 value값 , 기간
        var popId = 'popup_' + cookiename.split('_')[1];
         document.getElementById(popId).style.display = "none";    // 팝업창 아이디
    }
 

혹시 여러개의 팝업을 띄우실 경우 #hd_pops_100  팝업 아이디를 다르게 하셔야 반영이 됩니다~

팝업아이디가 모두 같아서 그런것 같네요.

해당 아이디로 쿠키가 생성되기 때문에...

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 103
© SIRSOFT
현재 페이지 제일 처음으로