크롬에서 팝업으로 데이터를 받아다가 부모창에서 실행하는 소스가 실행되지 않는 것을 발견하였다.
opener의 함수는 인식하나 실행이 되지 않는 상태였다.
그런데, 부모창의 개발자도구를 켜면 또 실행이 된다.
왜 크롬에서만...???
이것으로 3일을 끙끙 앓다가 결국 리더님께 sos쳤다...
//자식창
let tmpArr = setVal.split(",");
opener.doCreateSection(tmpArr[0],tmpArr[1],tmpArr[2]);
this.close();
//부모창
doCreateSection = function(member_seq,cmpy_code,day_max_prog) {
if(confirm("...")){
...
}
}
그런데 부모창에 떠있던 warning...
부모창에서는 confirm()을 사용할 수 없다는 것.
기존 소스에서는 팝업창에서 데이터 보내서 부모창에서 confirm을 띄우는 식으로 되어있었다.
그래서 confirm을 팝업창으로 옮겨 진행하니 정상적으로 동작한다.
대체 어떻게 opener를 옮길 것인가 무슨 showModalDialog.js까지 써가며 수정해보았으나 완전 다른 곳에 해답이 있었다.
3일을 앓았는데 리더님은 바로 찾아버리심 하하.
워닝 메시지라도 무시하지 말자..
'주말에 쓰는 개발일기 > javascript' 카테고리의 다른 글
[Javascript] 이벤트 버블링과 이벤트 캡쳐링 (0) | 2022.04.28 |
---|---|
오류 : Uncaught TypeError: window.showModalDialog is not a function (0) | 2021.12.01 |
chrome 80 samesite 정책 (크롬 / 엣지 결제모듈 인증모듈 사용 후 세션 유실) (1) | 2021.01.08 |
ArrayList 함수 clear() UnsupportedOperationException 에러. (0) | 2021.01.08 |
[ajax, javascript] file upload 유효성검사 (0) | 2021.01.08 |