일반 팝업창이 아래와 같다면
szGroupUserSelectionURL = "javascript:popup( '" + szGroupUserSelectionURL + "',
'SelectOwnerURL', '570', '550', 'NO', 'NO');";
모달창은
szGroupUserSelectionURL = "javascript:window.showModalDialog('" + szGroupUserSelectionURL + "',
self ,'dialogWidth:580px;dialogHeight:580px;scroll:0;help:0;status:0');";
이렇게 window.showModalDialog로 뛰워주면 됩니다.
형식은 팝업창과 거의 유사하지만 유의해야 할 점이 있습니다.
1. 스크립트 호출문제
모달창에서는 href="javascript:스크립트명();" 이런식으로 호출해서 쓰면 브라우저에 스크립트명이 뜨고 원하는
액션이 일어나지 않습니다.
그래서 모달창으로 뜨는 창에서 스크립트를 호출할시에는 href="#" onclick="스크립트명();" 이런식으로 쓰셔야 합니다.
2. 부모창 호출문제
보통 팝업창에서는 opener. 해서 쓰면 parent창이 응답을 하지만,
모달창에서는 parent를 부를 경우, child창에서는 응답하지 않습니다.
이럴땐 dialogArguments를 이용합니다. 그래서 소스를 그대로 쓰실려면
var opener = window.dialogArguments; 이렇게 선언해서 opener를 쓰시면 되겠습니다.
3. Session 전달문제
팝업창(window.open)에서는 팝업창(window.open)으로 전달 가능하고,
모달창(showModalDialog)은 모달창(showModalDialog)으로 전달 가능합니다. ("<%=Session.SessionID%>"로 확인)
showModalDialog에서 window.open하면, 새로운 창으로 인식해서 session을 공유하지 못합니다.
'개발 > Java Script' 카테고리의 다른 글
[Refactoring] if 문 대체 (0) | 2024.03.22 |
---|---|
[Tip] input type="text" 에 대문자 입력 방법 (0) | 2015.01.02 |
[Tip] iframe 콘텐츠에 맞게 높이 조정(스크롤 안생기게) (0) | 2013.10.30 |
[jqGrid] 기본 CRUD (0) | 2013.10.25 |
[Date] 현재 일자 얻는 방법 (0) | 2013.10.10 |