본문 바로가기

javascript 헛다리

postMessage 팝업창에서 부모창으로 데이터 전달

728x90

 

 

postMessage 팝업창에서 부모창으로 데이터 전달

 

팝업창 


    <script>
        function sendMessageToParent() {
            const memo_title = 'test title'; // 예제 데이터
            const memo_content = 'test content'; // 예제 데이터

            // 부모창에 데이터 전송
            window.opener.postMessage(
                {
                    type: 'memo_data',
                    payload: { memo_title , memo_content }
                },
                window.location.origin // 보안 설정을 위해 동일한 origin으로 제한
            );

            // 팝업창 닫기
            window.close();
        }
    </script>



부모창
    <script>
        let popupWindow;

        function openPopup() {
            // 팝업창 열기
            popupWindow = window.open('popup.html', 'testPopup', 'width=600,height=400');
        }

        // 팝업창에서 메시지를 받을 이벤트 핸들러
        window.addEventListener('message', (event) => {
            // 안전성을 위해 도메인 검증
            if (event.origin !== window.location.origin) {
                console.error('Unauthorized message origin:', event.origin);
                return;
            }

            console.log('Message from popup:', event.data);

            // 받은 데이터 처리 (예: HTML 업데이트)
            if (event.data.type === 'memo_data') {
                const { memo_title , memo_content } = event.data.payload;
                jQuery('#memo_title').val(memo_title);
                jQuery('#memo_content').val(memo_content);
            }
        });
    </script>
728x90

'javascript 헛다리' 카테고리의 다른 글

키 입력시 휴대폰 번호 [-] 작성  (0) 2025.01.13