부모창과 함께 닫히는 팝업창

짤막한 팁입니다. ^^

Internet Explorer에는 showModelessDialog 라는 메소드가 있어서 팝업이지만 상당히 빨리뜨고, 또한 부모창과 함께 닫히는 팝업창의 구현이 가능합니다.

자세한 것은 MSDN 참고하세요.
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/showmodaldialog.asp

또한 Mozilla 계열(Firefox, Netscape 등) 에서도 비슷하게 팝업창을 열 수 있습니다.
바로 window.open 을 할 때, modal=yes 라는 값을 추가하면 됩니다. 혹시 부모창이 닫힐 때 같이 닫히지 않는다면(테스트 결과 탭이 닫히는 것이 아닌 프로그램이 완전히 종료될때 닫힙니다), dependent=yes 라는 값을 추가로 주시기 바랍니다.

원래는 showModalDialog 와 같은 효과를 바라고 검색하다가 찾은건데 정작 제가 원했던 것은 아직 지원안되는 모양입니다. ^^a

위의 내용을 바탕으로 대충 구현한 함수는 다음과 같습니다.
차이점을 잘 모르겠다는 분들은 주소표시줄을 눈여겨 보세요. (^_^)

function modelessWindow(url, name, width, height)
{
	if  (window.showModelessDialog) {
		window.showModelessDialog(url, name,  'dialogWidth:'+width+'px;dialogHeight:'+height+'px');
	} else {
		var win = window.open(url, name,  'height='+height+',width='+width+',toolbar=no,directories=no,status=no,linemenubar=no,scrollbars=no,resizable=no,modal=yes,dependent=yes');
	}
}

Leave a Reply