jquery Cookie를 활용해 일주일간 보지않기, 하루 보지않기 등 특정 기간동안 뜨지 않는 팝업창을 구현하는 방법을 구현하려고 합니다.
<div class="modal" tabindex="-1" role="dialog" id="popup_modal">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
테스트 모달 입니다.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary week_close_btn">일주일 간 보지않기</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">닫기</button>
</div>
</div>
</div>
</div>
<script>
// 처음에 modal 열어두기
$(document).ready(function(){
$("#popup_modal").modal('show');
}
</script>
아래와 같은 형태의 모달을 띄워줍니다.
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script>
$(".week_close_btn").click(function(){
layerPopupHide(1);
})
function layerPopupHide(state){
$("#popup_modal").modal('hide');
if(state === 1){
//cookie처리
if($.cookie('testCookie') == undefined){
//쿠키가 없는 경우 testCookie 쿠키를 추가
// expires값으로 7을 주어 7일 후 쿠키가 삭제되도록 설정
// path값을 '/'로 주면 해당사이트 모든페이지에서 유효한 쿠키를 생성
$.cookie('testCookie', 'Y', { expires: 7, path: '/' });
}
}
}
</script>
<script>
$(document).ready(function(){
if($.cookie('testCookie') == undefined){
$("#popup_modal").modal('show');
}
}
</script>
이제 '일주일간 보지 않기' 버튼을 누르면, 'testCookie'라는 쿠기가 생성되며 모달이 뜨지 않습니다.