오늘은 자바스크립트를 이용해서 서비스 팩2 의 팝업 차단 기능을 무시하고 팝업을 여는 방법에 대해 적어보도록 하겠습니다.
웹페이지를 만들면서 제컴이 팝업 차단 기능이 해제되어 있어서 신경도 안쓰던 부분이었는데 오늘 다른 곳에서 보니 팝업 창 차단 관련 메시지가 뜨거나 창이 자동으로 바로 닫혀 버리는 일이 발생하여 이러저리 방법을 수소문 하던 중 괜찮은 팁(Tip)을 하나 발견하여 이래야 나중에 다시 검색해서 원하는 자료를 찾는 번거로움을 줄일 수 있겠단 생각에 글을 남겨둡니다.
그리고 아래 소스 중에서 setTimeout('k_Popup2("'+url+'","'+target+'","'+flag+'")', 500); 부분이 있는데 저는 setTimeout을 사용하지 않고 바로 setTimeout이 호출하는 함수 부분을 적용시켰습니다. ㅋㅋ
출처 : SP2 팝업차단 무시하고 팝업띠우기?!
DHTMLEdit 를 이용한것임.
처음엔 팝업을 기본적으로 띠워보고,.. 안된다 싶을때 DHTML 에디터 액티브X를 가동시킨후 그것을 통해서 팝업을 띠움.
테스트 예제는 http://test.kilho.net/popup.html
-----------------------------------------------------------------------
<script language = "javascript">
////////////////////////////////////////////////////////////
//
// 홈페이지,프로그램 제작의뢰 : http://www.cretec.co.kr
//
///////////////////////////////////////////////////////////
function k_Popup(url,target,flag)
{
var objPopup = window.open(url,target,flag);
// 팝업창이 차단되면 window.open()함수는 리턴 값으로 null을 반환함.
if (objPopup == null)
{
document.write("<object id='DHTMLEdit' classid='clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A' width='1' height='1' align='middle'><PARAM NAME='ActivateApplets' VALUE='1'><PARAM NAME='ActivateActiveXControls' VALUE='1'></object>");
setTimeout('k_Popup2("'+url+'","'+target+'","'+flag+'")', 500);
}
}
function k_Popup2(url,target,flag)
{
try
{
DHTMLEdit.DOM.Script.execScript('window.open("'+url+'","'+target+'","'+flag+'")');
}
catch (e)
{
// DHTML ActiveX 까정 없을때 ^^
}
}
// 사용법 k_Popup('주소','프레임','옵션');
k_Popup("http://test.kilho.net/poptest.html","","width=500,height=500");
</script>