DS's『 행복합시다 』

Carpe Programming/javascript

팝업창 띄울때 띄워져 있으면 안띄우기

nolite 2011. 7. 15. 15:53

<HTML>
 
<HEAD>
  
<SCRIPT language="javas-ript" type="text/javascript">
  
//<![CDATA[
    
var pop [];//팝업객체를 담을 배열
    
popCheck("""popname1""width=100,height=100,toolbar=no");//팝업url, 팝업이름, 옵션

    function 
popCheck(url, pname, option) {
      
var check = false;
      for 
(var i=0i<pop.lengthi++) {
        try {
          
if(pop[i] && pop[i].name == pname)check=true;//이미 같은 이름으로 팝업이 띄워저 있는 경우
        
}catch (e) {
          pop[i] 
null;
        
}        

      }//For End
      
if(!check) pop.push( window.open(url, pname, option) );//확인 후 여기서 팝업을 띄워 줍니다.
    
}

 

 


    /- 아래는 테스트하기 위해 존재하는 코드입니다. *-
    
function pop1(){
      popCheck(
"""popname1""width=100,height=100,toolbar=no");
    
}
    
function pop2(){
      popCheck(
"""popname2""width=100,height=100,toolbar=no");
    
}

  
//]]>
  
</SCRIPT>
 
</HEAD>

 
<BODY>
  
<INPUT TYPE="button" value="팝업이 이미 띄워저 있는 경우"  ="pop1()">
  
<INPUT TYPE="button" value="같은 이름에 팝업이 없는 경우"  ="pop2()">
 
</BODY>
</HTML>

 

 

 

===========================================================

 

[상기 소스 정리]

 

<HTML>
 <HEAD>
  <S-RIPT language="javas-ript" type="text/javascript">

    var pop = [];//팝업객체를 담을 배열

    function popCheck(url, pname, option)
    {
      var check = false;

      for (var i=0; i<pop.length; i++)
      {
          try
          {
              //이미 같은 이름으로 팝업이 띄워저 있는 경우
              if(pop[i] && pop[i].name == pname) check=true;
          }
          catch (e)
          {
              pop[i] = null;
          }
      }
          //확인 후 여기서 팝업을 띄워 줍니다.
          if(!check) pop.push( window.open(url, pname, option) );
    }

 

    function pop1(){
      popCheck("", "popname1", "width=100,height=100,toolbar=no");
    }

  </SCRIPT>
 </HEAD>

 <BODY>
  <INPUT TYPE="button" value="팝업이 이미 띄워저 있는 경우" ="pop1()">
  <INPUT TYPE="button" value="같은 이름에 팝업이 없는 경우" ="pop2()">
 </BODY>
</HTML>

728x90