웹공부/javascript , jQuery

레이어 팝업 n일만 보기

바구레 2018. 5. 12. 18:08

회사에서 새해인사 팝업을 쓸 때 사용했던 코드.

구글링으로 검색했고 일부 수정해서 사용


사용할때에는 setCookie함수 파라미터의 쿠키명과 만료일을 수정하면 된다


처음 구글에서 찾은 코드는 n일 팝업만 띄우는 코드였고

특정일자부터는 안보이게 해야해서 날짜를 비교하는 코드를 추가했다


서로 다른 레이어 팝업이라면 쿠키명을 다르게 해주어야하는데 이를 몰라서

같은 이름으로 사용했다가 오류가 났었다ㅠㅠ




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*쿠키 만들기*/
function setCookie(name, value, expiredays){
    var today = new Date();
    today.setDate(today.getDate() + expiredays);
    
    document.cookie = name + '=' + escape(value) + '; path=/; expires=' + today.toGMTString() + ';'
}
 
/*쿠키 가져오기*/
function getCookie(name){
     var cName = name + "=";
     var x = 0;
     var y = 0;
var i = 0;
 
    while ( i <= document.cookie.length ){
        var y = (x+cName.length);
        if ( document.cookie.substring( x, y ) == cName ){
            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 closePopupNotToday(){
    setCookie('notToday','Y'1);
    $("#frontPopup").hide('fade'); // 이곳에 해당 엘리먼트 아이디를 넣어준다.
}
 
/* 적용하기 */
 
$(window).ready(function(){
    var endDate = "201801010000"//종료일, 앞 8자리는 일자, 뒤 4자리는 시 분
 
    var now = new Date();//현재시간
    var year = now.getFullYear();
    var month = now.getMonth()+1;
    if((month+"").length < 2){
        month = "0"+month; // 1~9월처럼 한자리면 앞에 0을 붙임
    }
    var date = now.getDate();
    if((date+"").length < 2){
        date = "0"+date;
    }
    var hour = now.getHours();
    if((hour+"").length < 2){
        hour = "0"+hour;
    }
    var min = now.getMinutes();
    if((min+"").length < 2){
        min = "0"+min;
    }
 
    var today =  year + "" + month + "" + date + "" + hour + "" + min; //오늘날짜
 
    //오늘날짜와 종료일을 비교해 모달팝업 띄우지 않기
    if((eval(today) > eval(endDate))){
        return false;
    }else{
        if(getCookie("notToday")!="Y"){
            $("#frontPopup").show('fade');
        }
    }
});//jqb

cs







초보 퍼블리셔의 공부정리 블로그입니다.

내용에 오류가 있거나 수정사항이 있다면 꼭 댓글 부탁드립니다