IE 위주로 개발되었던 프로젝트에서 크롬에 맞도록 수정하는 과정에서 일어난 에러이다.
IE에서는 Modal 이라는 개념으로 팝업을 띄우게 되어있으나, 크롬에서는 새창의 팝업을 뜨게 되어있다.
Modal의 경우 showModalDialog를 이용하여 팝업과 부모창 사이 데이터 이동을 하였으나,
새창으로 뜨는 크롬의 경우 해당 방법으로는 데이터 이동이 불가능하다.
너무 많은 소스가 showModalDialog로 작성되어있어, 사용할 수 있는 라이브러리를 찾았고,
전자정부프레임워크에서 js를 찾게 되었다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v3:cmm:showmodaldialog
egovframework:com:v3:cmm:showmodaldialog [eGovFrame]
JavaScript의 Modal 방식의 dialog를 지원하는 windows.showModalDialog의 기능이 chrome 37 버전부터 지원하지 않음에 따라 대체 기능을 제공한다. showModalDialog 대체 기능은 기존 showModalDialog 함수를 그대로 사용
www.egovframe.go.kr
우리에게 필요한건 showModalDialog.js 였고, 팝업을 띄우는 부모창에 import 해주었다.
그리고 자식창에서 window.dialogArguments 를 실행하는 소스 위에 getDialogArguments() 를 실행하도록 했다.
//팝업을 띄우는 부모창
<script type="text/javascript" src="/js/lib/showModalDialog.js" ></script>
//팝업창
getDialogArguments();
var param = window.dialogArguments;
모달창을 띄우는 소스는 중요하지 않다 생각하여 생략한다.
'주말에 쓰는 개발일기 > javascript' 카테고리의 다른 글
함수형 프로그래밍(Functional Programming) (0) | 2022.09.07 |
---|---|
[Javascript] 이벤트 버블링과 이벤트 캡쳐링 (0) | 2022.04.28 |
크롬에서 opener의 함수호출 오류 (개발자도구를 켜야 작동할 경우) (0) | 2021.11.16 |
chrome 80 samesite 정책 (크롬 / 엣지 결제모듈 인증모듈 사용 후 세션 유실) (1) | 2021.01.08 |
ArrayList 함수 clear() UnsupportedOperationException 에러. (0) | 2021.01.08 |