지정한 HTML 문서를 표시하기위한 형식없는 대화창을 생성하여 디스플레이한다.
![]() |
Script | [vVal=]window.showModelessDialog(urlVal[,vArguments][,sFeatures]) |
- 인수/파라메터
-
- window : (팝업창 개체)
-
필수적인 요소이며, window 개체이다.
- urlVal
- 필수적인 요소이며, 대화창 위하여 디스플레이될 파일의 경로와 주소를 지정하는 문자열이다.
- vArguments
-
선택적인 요소이며, 문서을 대화창에 디스플레이할 떄 사용되는 인수를 지정하는 값이다. 이 파라메터를 사용하면, 배열변수를 포함하여 어떤 형식의 값도 전달할 수 있다. 대화창은 호출자에 의하여 전달된 값들을 window 개체의 dialogArguments 속성으로부터 추출하여 사용한다.
- sFeatures
- 선택적인 요소이며, 대화창을 장식할 윈도우의 내용을 지정하는 문자열이다. 이들은 세미콜론(;)으로 구분한다.
dialogHeight:sHeight 대화창을 높이를 단위를 동반하여 지정한다.(단위 참조) dialogLeft:sXPos 데스크톱에 상대적인 대화창을 수평거리를 픽셀단위로 지정한다. dialogTop:sYPos 데스크톱에 상대적인 대화창을 수직거리를 픽셀단위로 지정한다. dialogWidth:sWidth 대화창을 너비를 단위를 동반하여 지정한다.(단위 참조) center:{yes|no|1|0|on|off } 데스크톱에서 대화창을 중앙에 위치시킬 것인가를 지정한다. 디폴트는 yes이다. dialogHide:{yes|no|1|0|on|off} 대화창을 인쇄나 인쇄미리보기에서 감출 것인가를 지정한다. 이는 대화창이 안전한 적용에만 해당된다. 디폴트는 no이다. edge:{sunken|raised} 대화창 모서리 스타일을 지정한다. 디폴트는 raised이다. help:{yes|no|1|0|on|off } 콘덱스트 메뉴에 도움말 아이톤을 디스플레이할 것인가를 지정한다. 디폴트는 yes이다. resizable:{ yes|no|1|0|on|off } 대화창의 크기가 조절되는가를 지정한다. 디폴트는 no이다. scroll:{yes|no|1|0|on|off} 대화창에서 스크롤되는가를 지정한다. 디폴트는 yes이다. status:{yes|no|1|0|on|off} 대화창에서 상태바가 디스플레이되는가를 지정한다. 안전하지 않은 대화창에서 디폴트는 yes이고, 안전한 대화창에서는 no이다. unadorned:{yes|no|1|0|on|off} 대화창에서 테두리 색상을 디스플레이할 것인가를 지정한다. 이는 대화창이 안전한 적용에만 해당된다. 디폴트는 no이다. - 반환값
-
반환값 vVal은 새로운 윈도우 개체를 참조한다. 이 참조를 사용하여 새로운 윈도우의 속성과 메서드에 접속할 수 있다.
- 특기
-
사용자가 윈도우로 초점을 변경하더라도 형식없는(modeless) 대화창은 디스플레이된다.
showModelessDialog 메서드는 메뉴나 도움말 체계에서 유용하다. 이 메서드를 작동시키면, 브라우저 윈도우나 HTA(HTML Application) 적용 위층에 대화창이 나타난다.
대화창은 여러 도메인으로부터 주소의 자원을 포함할 수 있으므로, 보안을 요하는 정보를 vArguments 파라메터를 통하여 전달하지 말라. vArguments 파라메터는 window 개체의 dialogArguments 속성을 통하여 대화창 속에서 참조될수 있다. vArguments 파라메터가 문자열로 지정되었으면, 대화창에 전달되는 최대 문자열의 길이는 4096 글자이고, 그 이상은 잘려버린다.
관행에 따라 형식없는(modeless) 대화창은 스크롤바, 상태바나 창크기 조절이 안되므로 젹용 윈도우와는 다르다. 이를 생성하기 위해서는 다음 단계를 따른다.
- 스크롤바가 나타나지 않게 대화창의 body 엘레멘트에서 scroll 애트리뷰트를 no로 설정한다.
- 상태바를 나타나지 않게 showModelessDialog 호출에 사용되는 sFeatures 파라메터의 status을 no로 설정한다. 두번째 선택은 Visual Basic, HTA(HTML Application), 혹은 안전한 대화창을 호출하기 위한 것이다. 이들은 브라우저 대신에 인터넷 익스플로러의 인터페이스를 사용하므로 안전한 것으로 인정된다. 안전한 적용에서 대화창은 디폴트로 상태바를 디스플레이하지 않는다.
- 대화창 크기 조절은 되지 않도록 디폴트 off로 설정한다.
showModelessDialog 메서드에서 반환값을 생성하기 위하여 vArguments 파라메터에 뒤로 호출하는(callback) 기능이나 showModelessDialog 호출레 있는 개체를 설정한다. 형식없는 대화창에서 window 개체의 dialogArguments 속성을 통하여 이 기능이나 개체를 참조할 수 있다. showModelessDialog와 showModalDialog 메서드에서 동일한 인수가 유효하다.
대화창에도 스타일쉬트(CSS:Cascading Style Sheets)에서와 마찬가지로 "font-size:4"와 같이 디폴트 글지 크기를 지정할 수 있다. 여러 글꼴을 위하여 여러 글꼴 애트리뷰트를 사용하면 된다.
center의 디폴트값이 yes이지만 center를 덮어씌우기 위하여, dialogLeft와/혹은 dialogTop를 지정할 수 있다.
dialogHeight와 dialogWidth의 디폴트 길이 단위는 IE4.0에서 픽셀(px)이고 IE5에서 em이다. 값은 정수값이나 부동소수점값이 될수 있고, 그 뒤에 길이 단위를 기술한다. 단위는 절대단위 cm, mm, in, pt, pc, or px등과 상대단위 em or ex등이 있다. 대화창의 안정적 디스플레이를 위하여 dialogHeight와 dialogWidth를 픽셀단위로 지정하라.
사용자가 대화창의 높이를 수동으로 조절할 수 있지만, 대화창이 가장 작게 표현되는 높이 dialogHeight는 100 픽셀이다.
- 적용
-
개체 script IE window window.showModelessDialog(urlVal[,vArguments][,sFeatures]) IE5(win16,win32,unix),IE5.5(ce) - 참조
- showModalDialog
method ⇒ |
showModelessDialog 메서드⇒ |
![]() |
||
성명 : 홍길동
showModelessDialog 메서드로 지정된 페이지를 사용하여 형식없는(modeless) 대화창을 만들어 입력하면 반환값을 윈도우와 공통의 변수로 윈도우에 전달한다.
<HTML>
<HEAD>
<SCRIPT>
var sUserName=''; // 공통변수로 대화창과 데이터를 공유한다.
function doOpenDial(){
showModelessDialog('../object/exp/wmyDialog.html',window,'status:false;dialogWidth:400px;dialogHeight:200px');
}
function doUpdate(){
oName.innerText = sUserName; // 전달된 값의 적용
}
</SCRIPT>
</HEAD>
<BODY>
<P>성명 : <SPAN id="oName" style="color:navy;font-size:14pt">홍길동</SPAN></P>
<INPUT type="button" value="형식없는 대화창 열기" onclick="doOpenDial()">
</BODY>
</HTML>
myDialog.html 파일의 코드.
<!DOCTYPE html public "-//w3c//dtd html 3.2//en">
<HTML>
<HEAD>
<TITLE>언어 참조 - Javascript - 예제 - showModelessDialog (window)</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=euc-kr">
<SCRIPT>
function doGetData(){
var sData = dialogArguments;
sData.sUserName = oEnterName.value;
sData.doUpdate();
}
function doCancel(){
var sData = dialogArguments;
sData.sUserName = '홍길동';
sData.doUpdate();
}
</SCRIPT>
</HEAD>
<BODY>
<H3>형식없는 대화창<FONT size=2 style=font-weight:normal>(modeless dialog box)</FONT> 예제</H3>
<CENTER>
<LABEL for="oEnterName" accesskey="f">성명 : </LABEL>
<INPUT id=oEnterName value="이순신"><BR><BR>
<INPUT value="적용" type=button onclick="doGetData();">
<INPUT value="확인" type=button onclick="doGetData();window.close();">
<INPUT value="취소" type=reset onclick="doCancel();window.close();">
<INPUT value="닫기" type=button onclick="self.close();">
<DIV id=showUrl style="font-size:9pt;color:teal">
<SCRIPT>showUrl.innerText=document.location;</SCRIPT><BR>
dialogArguments 속성은 윈도우에서 선언한 변수를 공통으로 갖는다.</DIV>
</CENTER>
</BODY>
</HTML>
//----------------------------------------------
출처 : http://www.koxo.com/lang/js/method/showModelessDialog.html
method