팝업레이어 24시간 닫기

팝업레이어 24시간 닫기

QA

팝업레이어 24시간 닫기

본문

기존 팝업 레이어(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  팝업 아이디를 다르게 하셔야 반영이 됩니다~

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 145
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT