본문 바로가기

웹프로그램

[TIP] IE버그를 피하기 위한 코드

 

우리가 흔히 a 태그에 onclick 속성을 이용하여 팝업이나 메시지 등 자바스크립트를 사용하게 되는데

 

이럴 경우 대부분 아래와 같은 코드를 사용할 것입니다.

 

<a href="http://www.daum.net/" onclick="Popup(this.href); return false;">팝업</a>

 

이때 특정 IE에서는 뒤에 있는 return false;가 무시되는 경우들이 발생하여 팝업이 뜨고 본창도 href에 있는 주소로 이동하는 경우들이 발생합니다.

 

이러한 것은 IE의 버그로 보이며 이 버그를 피하기 위해서는 아래와 같은 함수와 코드를 사용하면 됩니다.

 

 

<script type="text/javascript">
//<![CDATA[
 function preventDefaultAction(rtnValue) {
  if (!rtnValue)
  {
   if (typeof event.preventDefault!= 'undefined') {
     event.preventDefault(); // W3C
   } else {
     event.returnValue = false; // IE
   }
  }
   return rtnValue;
 }

 function Popup(address) {
  alert(address);
  window.open(address, "popup", "width=500px, height=500px, top=10px, left=10px, scrollbars=yes, resizable=yes");  
  return preventDefaultAction(false);
 }
//]]>
</script>

<a href="http://www.daum.net/" onclick="return Popup(this.href);">팝업</a>

 

크리에이티브 커먼즈 라이선스
Creative Commons License