Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ascx.cs
- 가상머신
- 스프링부트
- PHP
- db
- ASP
- HTML
- 데이터베이스
- 자동증가열
- javascript
- 트리플DES
- CrossSiteScripting
- SQL
- oracle
- 다중pk
- memoryDB
- 자바스크립트
- 오라클
- windows7
- mysql
- 다중기본키
- 코딩테스트
- C#
- 쿼리
- 이미지엑박
- 람다식함수
- mssql
- springboot
- 프로그래머스
- VMWare
Archives
- Today
- Total
개발바닥 아방수
JS | 자식창에서 메세지 발신, 부모창에서 메세지 수신하기 본문
가끔 팝업창에서 작업을 마치고,
팝업창은 끄고 자식창의 메세지를 받아 부모창에서 작업을 마저 해야할 때가 있다.
이럴 때 사용하면 좋은 게 postMessage 메서드다.
postMessage('전달할 데이터', '자식창URL');
postMessage() 메서드는 웹 페이지 간에 안전하게 데이터를 전송하는 데 사용된다.
이 메서드를 사용하면 다른 창, 프레임 또는 워커(worker)에 메시지를 보낼 수 있다.
이 메서드는 두 가지 주요 매개변수를 사용한다:
message: 전송하려는 데이터. 문자열, 객체 등 어떤 데이터든 전달할 수 있다.
targetOrigin (선택적): 메시지를 받을 대상 창의 출처(origin)를 지정.
이는 보안상의 이유로 설정되며, 이 값이 설정되면 특정 출처에서만 메시지를 수신한다.
기본적으로 '*'를 사용하면 모든 출처에서 메시지를 수신할 수 있다.
예제코드
자식창
// 현재 창 닫고 부모 창에 true 반환
window.close();
window.opener.postMessage(true, '*');
부모창
// 부모 창에서 메시지 수신
window.addEventListener('message', function(event) {
// event.data에 전달된 데이터가 있음
var receivedData = event.data;
// 받은 데이터 처리
if (receivedData === true) {
// 받은 데이터가 true인 경우 처리
console.log('부모 창에서 받은 데이터는 true입니다.');
// 원하는 작업 수행
}
// 다른 조건에 따른 처리 가능
});
'웹 개발 > Front' 카테고리의 다른 글
[Javascript] null과 undefined의 차이 (0) | 2023.02.23 |
---|---|
동기와 비동기 방식 (0) | 2022.12.15 |
아이프레임(iframe)이란? (0) | 2022.12.15 |
[HTML] 가로, 세로 스크롤 없애기 (0) | 2022.12.13 |
[HTML] img 태그 엑박일 때 onerror 처리 (0) | 2022.11.17 |