본문 바로가기
Dev/JavaScript

showModalDialog 사용하기

by 코딩삐약 2022. 5. 20.

1. window.showmodaldialog is not a function 오류

chrome에서 더이상 지원 x

호출되는 jsp에 <script type="text/javascript" src="<c:url value='/'/>js/apo/cmm/showModalDialog.js"></script>를 import해주면 실행됨.

 

2. showModalDialog 데이터 전달 받기

 

showModalDialog는 지정한 HTML 문서를 표시하기 위한 대화창을 출력하는데 사용한다.
이때 window.showModalDialog와 window.open이 비교가 되는데 차이점은 다음과 같다.
  1. showModalDialog는 자식창을 닫지 않는 이상 부모창을 선택할 수 없다.
  2. showModalDialog는 자식창이 호출될때 부모창에서 자식창으로 변수값을 넘겨줄수 있다.

Syntax

returnVal = window.showModalDialog(uri[, arguments][, options]);
  • returnVal  uri 로 지정된 문서에 설정된대로 returnValue 속성을 보유합니다 .
  • uri 주소
  • arguments 자식창이 호출될때 부모창에서 넘겨주는 변수들로 객체배열로 넘긴다. 이들은 window 객체의 window.dialogArguments 속성 에서 사용할 수 있습니다 .
  • options 창설정

index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <script>
 function openDialog(){
  var ret;
  var args = new Array();
  args["test1"] = "1111";
  args["test2"] = "2222";
  ret = showModalDialog("open.html", args,"dialogHeight=420px; dialogWidth=300px; scroll=no; status=yes; help=no; center=yes");
 }
  </script>
 </HEAD>
 
 <BODY>
 <form>
 <input type="button" value="click" onclick="javascript:openDialog();">
 </form>
 </BODY>
</HTML>

open.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%
 String test1 = request.getParameter("test1"); 
%>
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <script>
 var test1 = window.dialogArguments["test1"];
 var test2 = window.dialogArguments["test2"];
 alert(test1+"\t"+test2);

 str = 'test1 : '+test1+'<br>';
 str += 'test2 : '+test2;
 document.write(str);
  </script>
 </HEAD>

 <body>
 <input type="button" value="close" onclick="javascript:self.close();">
</body>
</HTML>

출처 : http://kwaknu.egloos.com/v/5148619

출처: https://runebook.dev/ko/docs/dom/window/showmodaldialog