- Today
- Total
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 클론코딩
- 티스토리챌린지
- 오류해결
- 워드프레스
- dbeaver
- JSP
- 프로시저
- Hostinger
- spring boot
- 배열
- 문제해결
- 오라클
- 이클립스
- 트러블슈팅
- PLSQL
- PROCEDURE
- Oracle
- function
- 엘리멘터
- 자바스크립트
- javascript
- pl/sql
- wordpress
- sql
- 함수
- 워스프레스
- 환경세팅
- iframe
- 오블완
Archives
개발 공부중
[JavaScript] iframe 부모 - 자식 메시지 전송 Window.postMessage() 본문
iframe 을 사용하면서
부모와 자식 간 데이터 공유를 위한 방법으로 postMessage를 사용해봤다.
0. 기본문법
targetWindow.postMessage(message, targetOrigin, [transfer]);
targetWindow.postMessage(보내질 메시지, 문자열 "*" 혹은 URI, 객체(생략가능));
//예시
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event) {
if (event.origin !== "http://example.org:8080") return;
// ...
}
- targetWindow: 메시지를 받을 창 (예: iframe.contentWindow 또는 parent).
- message: 전달할 데이터. 일반적으로 문자열이나 객체 형태.
- targetOrigin: 메시지를 받을 창의 출처 (예: "http://example.com"). 모든 출처에 메시지를 보내려면 "*"를 사용.
- [transfer]: 전송할 객체의 소유권을 이전하는 데 사용 (옵션).
1-1. 부모 창에서 자식 iframe 에 postMessage
<script>
function sendMessageToIframe() {
var iframe = document.getElementById('myIframe');
iframe.contentWindow.postMessage('Success', '*');
//자식 창으로 Success 메시지를 보냄
}
</script>
1-2. 자식창에서 메시지 수신
<script>
window.addEventListener('message', function(event) {
if (event.data === 'Success') {
// Success 를 받아온 경우 처리
}
});
</script>
2-1. 자식 iframe 창에서 부모 창에 postMessage
<script>
function sendMessageToParent() {
parent.postMessage('Good', 'http://example.com');
//부모 창으로 Good 메시지를 보냄
}
</script>
2-2. 부모 창에서 메시지 수신
<script>
window.addEventListener('message', function(event) {
if (event.origin !== 'http://example.com') {
return; // 메시지를 보낸 창의 출처가 http://example.com인지 확인
}
});
</script>
더 자세한 내용은 아래 참조>>
'JavaScript' 카테고리의 다른 글
[JavaScript] 비동기 통신과 동기 통신 비교 (0) | 2024.07.16 |
---|---|
[JavaScript] 파싱 방지 - 스크립트 태그를 나누어 작성 (0) | 2024.07.01 |
[jquery] iframe 부모 - 자식 접근 방법 (0) | 2024.06.11 |
[JavaScript] 공공 API 사용하여 JSON 가져오는 방법 (0) | 2024.05.09 |
[JavaScript] jQuery serialize() 사용방법 (2) | 2024.01.27 |
Comments