- opener
브라우저에는 메인 화면과 팝업창이 존재할 때 가 있다. 이때 팝업창과 메인 화면에서 데이터를 서로 이용하거나
이벤트를 전달해야할 때 가 있다. 이럴 때 사용할 수 있는 개념이 'opener'다.
- 사용법
어차피 필요하면 찾아서 사용하게 되는데 내가 오늘 사용한 개념만 간단히 정리하자.
자식에서 부모값을 사용할 수 있고 부모에서 자식값을 사용할 수 있다.
부모란 메인페이지를 말하고 자식이랑 팝업창을 말한다.
- 실습
노란창이 부모고, 빨간창(팝업)이 자식이다.
var a = 10
window.open()
// 팝업 열기 위한 명령어
이와같이 부모창의 콘솔에서 변수를 만들어주고 팝업을 열어주었다.
opener.a
window.opener 라고 사용해도되지만 자식창에서 opener.a를 입력하자 부모창의 a값을 가져오는 모습을 볼 수 있다.
이를 활용해서 여러가지 이벤트도 만들 수 있다. 내가 오늘 활용한 이벤트는
"팝업에서 버튼클릭 혹은 특정이벤트를 클릭 했을 때 부모창을 reload()하기" 였다.
if(opener.a==10){
opener.location.reload();
}
조건은 다양하게 줄 수 있다. 심지어 opener.location부터 opener.locaion.search과 URLSearchParams 등을 결합해
변수를 주지 않고도 전페이지의 정보를 이용해 사용할 수 있다.
if(조건){
var = urlParams = new URLSearchParams(opener.location.search);
var 변수 = urlParams.get("정보");
if(변수 == 조건){
opener.location.reload();
}
}
이와 같이도 활용할 수 있다.
핵심은 브라우저에서 부모, 자식(팝업) 창에서 서로 데이터를 전송하고, 제어할 수 있다는 사실이다.
심지어 css의 id값등 활용은 무궁 무진하다.
-참고한글
https://redcow77.tistory.com/531
https://stackoverflow.com/questions/10792408/open-popup-and-refresh-parent-page-on-close-popup
https://lasdri.tistory.com/1456
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mk1126sj&logNo=220986157391
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
'Javascript' 카테고리의 다른 글
Javascript 기초 - 셀렉터, 돔조작, 웹js 기본, Alert UI만들기 (0) | 2023.04.22 |
---|---|
호이스팅(hoisting) (0) | 2023.03.27 |
동기 & 비동기 - 1 (실행방식,콜백지옥) (0) | 2022.07.05 |
유용한 자바스크립트 문법 응용 (0) | 2022.07.05 |
유용한 자바스크립트 문법 기본 (0) | 2022.06.23 |