opener를 사용하지 못할 때
2018. 4. 12. 16:30
http://www.abc.com 이하 "abc"에서 http://www.xyz.com 이하 "xyz"을 window.open(); 형태로 팝업을 호출한 후
xyz(자식)에서 abc(부모)의 함수를 호출 하거나 파라미터에 접근하려고 할 경우
크로스도메인 보안 이슈로 opener로 접근을 하지 못한다. (팝업 호출 시 도메인주소가 달라져서 opener객체를 잃어버림)
오류로그 : Uncaught DOMException: Blocked a frame with origin "http://www.xyz.com" from accessing a cross-origin frame.
이 때 해결방법이 2가지가 있다.
1. postMessage를 사용할 수 있다.(이 경우 IE 8 부터 지원된다)
2. iframe을 사용하여 abc(부모)아래에 xyz(자식)의 jsp호출 후 호출한 iframe영역에서 팝업창을 띄우면 된다. (팝업 창에서는 opener.parent.으로 접근하면 된다)
예제 소스 정리는 나중에 해서 업로드 하자.......! 지금은 바쁘다!
'Javascript' 카테고리의 다른 글
IE에서 iframe(레이어 팝업) reload 시에 input text 태그 미작동 오류 (0) | 2020.03.03 |
---|---|
jsp에서 jqery template을 사용할 때 (0) | 2019.02.18 |
jquery event에 parameter를 전달하고자 할 때 (0) | 2019.01.24 |
파일다운로드 완료 시 로딩바 종료 (0) | 2017.08.24 |