1. Modaldialog 란 무엇입니까?
showmodaldialog는 jswindow 객체의 방법입니다.
차이점은 Showmodaldialog가 열린 후 부모 창이 초점을 맞출 수 없습니다 (즉, 작동 할 수 없습니다).
상위 창이이 returnValue를 얻을 수 있도록 하위 바람의 window.returnValue 값을 설정할 수 있습니다.
2. 한 예
1) 메인 창의 main.html,
2) showmodaldialog를 통해 메인 창에서 서브 윈도우 sub.html을 엽니 다.
3) 하위 바람에서 returnValue를 설정하고 사용하려면 기본 창으로 돌아갑니다.
main.html
다음과 같이 코드 코드를 복사하십시오.
<html>
<헤드>
<medaname = "Generator"content = "Oscar999">
</head>
<cript>
functionshowmodal ()
{{
varret = window.showmodaldialog ( "sub.html? temp ="+math.random ());
경고 ( "SubreturnValueis"+ret);
}
</스크립트>
<body>
<inputid = button1type = buttonValue = "OpenSub"이름 = button1onclick = "showmodal ();">>
</body>
</html>
sub.html
다음과 같이 코드 코드를 복사하십시오.
<html>
<헤드>
<medaname = "Generator"content = "Oscar999">
</head>
<cript>
functionreturnmain ()
{{
window.returnValue = "returnfromsub";
Window.Close ();
}
</스크립트>
<body>
<inputid = button1type = buttonValue = "returnAndClose"name = button1onclick = "returnMain ()">
</body>
</html>
특별한 설명 : main.html의 showmodaldialog 방법이있을 때 Math.random ()을 사용하는 목적은 캐시를 피하는 것입니다.
3. 상세하게 모도 알디 알로그
vreturnvalue = window.showmodaldialog (surl [, varguments] [, sfeatures])))
SURL
해야 할 -Choose 매개 변수, 유형 : String. URL은 대화 상자에 표시 할 문서를 지정하는 데 사용되었습니다.
varguments
선택적 매개 변수, 유형 : 변형. 대화 상자에 매개 변수를 전달하는 데 사용됩니다. 배열 등을 포함하여 통과하는 매개 변수 유형은 제한되지 않습니다. 대화 상자는 Window.dialogarguments를 통해 전달되는 매개 변수를 얻습니다.
sfeatures
선택적 매개 변수, 유형 : 문자열. 대화 상자의 외관 및 기타 정보를 설명하는 데 사용되며 아래에서 하나 이상을 사용하고 분리 할 수 있습니다. "
대화 상자 높이는 100px 이상, IE4의 대화 상자 및 대화 상자는 EM이며, IE5는 PX를 사용하여 PX를 사용합니다.
Dialogwidth : 대화 상자 너비.
Dialogleft : 데스크탑 왼쪽에서 거리.
DIALOGTOP : 데스크탑에서의 거리.
중앙 : {예 |. 1 |.
도움말 : {예 |.
RESINGable : {예 |. 기본 번호.
상태 : {예 |. 기본값은 예 [modeless] 또는 아니오 [modal]입니다.
스크롤 : {예 | 0 |. 기본값은 예입니다.
HTA에는 일반적으로 일반 웹 페이지에서 사용되지 않는 몇 가지 속성이 있습니다.
Dialoghide : {예 : 0 |. 기본값은 아니오입니다.
가장자리 : {Sunken |.} : 대화 상자의 프레임 스타일을 나타냅니다. 기본값은 인상됩니다.
{예 : 0 |.
4. 브라우저 호환성
그러나 모든 브라우저 가이 사용법과 호환되는 것은 아닙니다.
Chrome에서 위의 예제를 실행하면 부모 창이 Window와 동일하며 획득 한 returnvale도 정의되지 않습니다.
다음은이 방법에 대한 주류 브라우저의 지원입니다.
브라우저 | 지원 여부 | 상태 |
IE9 | ○ | |
Firefox13.0 | ○ | |
Safari5.1 | ○ | |
Chrome19.0 | × | 모달 대화 상자는 아니지만 Open에는 새 창이 있습니다. |
Opera12.0 | × | 창문조차도 모든 일이 일어났습니다 |
창에 varguments에 도입되는 매개 변수가있는 경우 :
다음과 같이 코드 코드를 복사하십시오.
var return = wind
하위 바람에서 다음 값은 다음과 같습니다.
브라우저 | 모달 대화 상자 | Window.opner | Window.dialogarguments | returnValue |
IE9 | ○ | 한정되지 않은 | [개체 창] | ○ |
Firefox13.0 | ○ | [ObjectWindow] | [ObjectWindow] | ○ |
Safari5.1 | ○ | [ObjectWindow] | [ObjectWindow] | ○ |
Chrome19.0 | × | [ObjectWindow] | 한정되지 않은 | × |
Firefox 브라우저에서 하위 바람이 새로 고침되면 Window.dialogarguments가 여전히 손실되어 정의되지 않습니다. 위의 결과에서 반환 값 returnValue는 Chrome 브라우저 만 정의되지 않으며 다른 브라우저에 문제가 없다는 것임을 알 수 있습니다.
5. 크롬의 호환성을 해결하는 방법.
방향은 다음과 같습니다.
main.html
다음과 같이 코드 코드를 복사하십시오.
<html>
<헤드>
<meta name = "일반"content = "Oscar999">
</head>
<cript>
함수 showmodal ()
{{
var return = wind
// 크롬의 경우
if (ret == 정의되지 않은)
{{
ret = window.returnValue;
}
경고 ( "하위 반환 값은"+ret);
}
</스크립트>
<body>
<입력 id = button1 type = button value = "sub"name = button1 onclick = "showmodal ();">>
</body>
</html>
sub.html
다음과 같이 코드 코드를 복사하십시오.
<html>
<헤드>
<meta name = "일반"content = "Oscar999">
</head>
<cript>
함수 returnMain ()
{{
if (window.opner! = 정의되지 않은)
{{
window.opner.returnValue = "하위에서 리턴";
} 또 다른 {
Window.returnValue = "Sub에서 돌아 오십시오";
}
Window.Close ();
}
</스크립트>
<body>
<입력 id = button1 type = button value = "return and close"name = button1 onclick = "returnMain ()">
</body>
</html>
이는 특정 객체가 브라우저를 구별하도록 정의되는지 여부를 결정하기위한 것입니다. 물론 브라우저 유형의 유형을 판단 할 수도 있습니다.
부모 창의 returnValue를 다른 목적으로 대체 방법으로 수행 할 수있는 경우 다음과 같이 사용됩니다.
var OldValue = Window.returnValue;
var newValue = showmodaldialog ()
window.returnValue = OldValue
6. Chrome의 테스트는 HTTP URL에 따라 테스트에 액세스하기 위해 HTML 파일을 웹 서버 (Tomcat, ...)에 넣어야한다는 점에 유의해야합니다. 그렇지 않으면 성공하지 못할 것입니다.