본문 바로가기

Web/JSP

[스크랩] 팝업 오늘 그만보기 javascrpt

 

출처 : http://blog.naver.com/rangs75/90048805769

 

소스 : onedayPop.html

 

<html>
<head>
<title>팝업창</title>

<script type="text/javascript">
<!--
function setCookie(name, value, expiredays) {
var today = new Date();
    today.setDate(today.getDate() + expiredays);

    document.cookie = name + '=' + escape(value) + '; path=/; expires=' + today.toGMTString() + ';'
}

function closePop() {       
if(document.forms[0].todayPop.checked)               
setCookie('blogWebCafe', 'rangs', 1);
self.close();
}
//-->
</script>

</head>
<body>

<form>
<input type="checkbox" name="todayPop" onClick="closePop()">
오늘 하루 그만보기
</form>

</body>
</html>
 

 

소스 : index.html

 

 <html>
<head>
<title>팝업을 뛰우는 부모창</title>
<script type="text/javascript">
<!--
function getCookie(name){   
var wcname = name + '=';
var wcstart, wcend, end;
var i = 0;   

  while(i <= document.cookie.length) {           
   wcstart = i; 
 wcend   = (i + wcname.length);           
 if(document.cookie.substring(wcstart, wcend) == wcname) {                   
  if((end = document.cookie.indexOf(';', wcend)) == -1)                          
   end = document.cookie.length;                   
  return document.cookie.substring(wcend, end);           
   }           

 i = document.cookie.indexOf('', i) + 1;           
 
   if(i == 0)                   
  break;   
  }   
  return '';
}

if(getCookie('blogWebCafe') != 'rangs') {      
 window.open('onedayPop.html','','width=250,height=200,top=0,left=0');
}
//-->
</script>
</head>
<body>

팝업을 뛰우는 창 입니다.

</body>
</html>

 

 

cookie를 이용하기 위해서는 먼저 cookie를 저장해야 합니다.
cookie를 저장하기 위해서는 반드시 name 과 그리고 이와 쌍을 이루는 value 가 포함 되어야 합니다.


function setCookie(name, value, expiredays) { // 쿠키의 이름과 값 그리고 쿠키가 종료되는 날짜를 설정 합니다.
var today = new Date();
    today.setDate(today.getDate() + expiredays);
// 날짜를 설정하기 위해 setDate메소드를 사용하여 getDate의 "일"에 종료일 하루 "1" 을 더합니다.

    document.cookie = name + '=' + escape(value) + '; path=/; expires=' + today.toGMTString() + ';'
//쿠키를 저장시 이름과 값을 쌍을 이루고 그리고 쿠키를 사용한 문서의 위치를 정하고 종료일은 GMT 시간으로 합니다.
}

function closePop() { // 체크 박스에 체크시 쿠키이름과 값 그리고 종료일을 쿠키에 저장하고 창을 닫습니다.
if(document.forms[0].todayPop.checked)                
setCookie('blogWebCafe', 'rangs', 1);
self.close();
} 


이제 저장된 cookie 들로 부터 위에서 저장한 cookie 를 가져와 창을 띄울지를 결정합니다.

function getCookie(name){    
var wcname = name + '='; // blogWebCafe 라는 쿠키 이름
var wcstart, wcend, end;   // 문자열을 추출하기 위한 변수를 선언 합니다.
var i = 0;    

  while(i <= document.cookie.length) { // 쿠키의 문자열을 전부 검색 합니다. 
  wcstart = i;  
  wcend   = (i + wcname.length);            
if(document.cookie.substring(wcstart, wcend) == wcname) { // 검색한 쿠키에  blogWebCafe와 동일한 문자열이 있다면
if((end = document.cookie.indexOf(';', wcend)) == -1)  
// 마지막 부분을 구분자를 통해 검색하고 마지막이 아니라면 쿠키를 계속 검색합니다.(마지막에는 (;) 없습니다.)                
end = document.cookie.length;
return document.cookie.substring(wcend, end); // rangs(value) 에 해당하는 문자열을 추출하여 리턴 합니다.
  }            

i = document.cookie.indexOf('', i) + 1;       
  
  if(i == 0)  // 모든 쿠키를 검색 했다면 while문을 제어 합니다. 
break;    
  }    
  return '';


if(getCookie('blogWebCafe') != 'rangs') {
// getCookie에 blogWebCafe 를 매개로 해서 해당 쿠키를 찾고  rangs 라는 값이 없으면 팝업창을 실행 합니다.
 window.open('onedayPop.html','','width=250,height=200,top=0,left=0');
}