티스토리 뷰

컴퓨터/프로그래밍/Java

팝업창 차단과 해법

Rough Existence 2006. 8. 22. 22:49
팝업창 차단과 해법 

서비스팩2에 포함된 가장 중요한 기능 중 하나가 인터넷 익스플로러에 대한 대대적인 업데이트이다. 이 중 다
른 브라우저에 탑재되어 많은 사용자들의 호응을 받았던 기능 중 하나가 팝업창 차단이다. 이 기능이 브라우
저에 기본값으로 설정되며, 웹사이트에 따라 브라우저 주소 표시줄 아래에 표시되는 '알림 표시줄'을 통해 사
용자가 차단 여부를 선택할 수 있다.

팝업창을 차단한다고 해서 모두 다 차단하는 것은 아니다. onload와 window.open을 통해 자동으로 오픈되는
팝업창만 차단된다. 즉, 사용자의 액션으로 열리는 팝업창이나 인트라넷 영역에서는 팝업이 허용된다.

이렇게 되면, 싸이월드의 경우 주소를 치면 미니 홈피가 자동으로 뜨던 것을 할 수가 없게 된다. 또한 팝업 광
고나 알림을 위해 웹사이트에서 띄우는 공지들도 모두 차단되는 것이다.

가장 먼저 할 수 있는 것이 팝업 차단 기능을 해제하거나, 자신의 사이트에서는 팝업을 허용하도록 하는 가이
드를 만들어 공지하는 일이다. 그 다음으로 자동으로 뜨는 팝업창이 어떤 액션을 수행하게 될 때 팝업창이 차
단되었는지 여부를 확인하여 이에 대한 적절한 경고를 사용자에게 해주는 것이 필요하다.

팝업창이 차단되면 window.open()함수는 리턴 값으로 null을 반환하므로 이를 이용해 차단 여부를 알 수 있
다. 아래 내용이 팝업창 차단을 확인해 그 여부를 알려주도록 수정된 자바스크립트 코드다.


수정 전
<script language = "javascript" >
function onLoad()
{

var objPopup = window.open("popup.htm", "");
location.href = "other.html";
}
</script>
<body onload= "onLoad()" >



수정 후
<script language = "javascript">
function onLoad()
{
var objPopup = window.open("popup.htm", "");
if (objPopup == null) {
alert("차단된 팝업창을 허용해 주십시오.");
}
else {
location.href = "other.html";
}
}
</script>
<body onload= "onLoad()" >


예를 들어 팝업창을 자동으로 띄우고 원래 페이지가 다른 페이지로 이동한다거나 창을 닫거나 하는 경우가 있
으면 팝업창 차단 여부를 확인하도록 스크립트를 바꿔야 한다.

출처: zdnet