회사에서 온보딩을 만들기위해 기존 템플릿에 iframe을 끼우는 작업을 하면서 정리해본 iframe에 대한 정리본
inline Frame의 약자로 HTML 문서내에 다른 HTML 문서를 보여 줄때 사용된다.
iFrame전에는 Frame이란 태그가 존재하였으나 deprecated 되었고
iframe으로 대체되었다.
<iframe> 태그를 사용하면 된다.<iframe
src="프레임에 사용할 url 주소">
</iframe>
<a>, <form> 또는 <base> 요소의 대상 속성에서 사용할 수 있습니다. <input> 또는 <button> 요소의 formtarget 속성; 또는 window.open() 메서드의 windowName 매개변수입니다.window.postMessage를 통하여 부모와 자식(iframe)페이지에서 메시지를 주고 받을 수 있다.
targetWindow.postMessage(message, targetOrigin, [transfer]);
메시지 송신
window.postMessage(message, targetOrigin, [transfer]);
// message : 전달할 메시지 보통 object형태
// tagetOrigin : 메시지를 수신받는 도메인. 특정 도메인이 아니면 *
// transfer : optional
메시지 수신
window.addEventListener( 'message', function( e ) {
// e.data가 전달받은 메시지
console.log( e.data );
} );
예시
// 부모 -> 자식
window.contentWindow.postMessage({message: "안녕"}, "*")
// 자식 -> 부모
window.parent.postMessage({message: "안녕"}, "*")