iframe 요소는 문서 내의 문서입니다.
창 개체: 브라우저는 HTML 문서를 열 때 해당 창 개체를 생성합니다. 그러나 문서가 하나 이상의 프레임을 정의하는 경우(즉, 하나 이상의 프레임 또는 iframe 태그를 포함함) 브라우저는 원본 문서에 대한 창 개체를 만든 다음 각 iframe에 대한 추가 창 개체를 만듭니다. 원래 창의 하위 창.
contentWindow: 지정된 iframe 또는 iframe이 위치한 창 객체를 참조합니다.
Demo1
상위 페이지 fu.html:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>父页面</title> </head> <body> <input type=button value="调用子页面中的函数childSay函数" onclick="callChild()"> <iframe id="myFrame" src="zi.html"></iframe> <script type="text/javascript"> function parentSay() { alert("我是父页面中的方法"); } function callChild() { document.getElementById("myFrame").contentWindow.childSay(); } </script> </body> </html>
하위 페이지 zi .html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>子页面</title> </head> <body> <input type=button value="调用父页面中的parentSay()函数" onclick="callParent()"> <script type="text/javascript"> function childSay() { alert("我是子页面的say方法"); } function callParent() { parent.parentSay(); } </script> </body> </html>
Demo2
상위 페이지 iframe1.html:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>父页面与子页面之间的调用</title> </head> <body> <iframe src="http://localhost/iframe/iframe3.html" id="iframe3"></iframe> <iframe src="http://localhost/iframe/iframe2.html" id="iframe2"></iframe> <div>我是父页面</div> <script type="text/javascript"> var iframe2=document.getElementById('iframe2'); iframe2.onload=function(){//父页面调用子页面中的方法 iframe2.contentWindow.b(); }; function test2() { console.log("我是父页面中的方法,在子页面中调用的"); return iframe2; } </script> </body> </html>
하위 페이지 iframe2.html:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>子页面</title> </head> <body> <div id="test">aaa</div> <div>子页面</div> <script type="text/javascript"> //子页面iframe2.html调用父页面iframe1.html的函数: parent.test2(); function b(){ console.log("我是子页面iframe2"); } function c() { console.log("iframe3页面调用iframe2页面"); } </script> </body> </html>
하위 페이지 iframe3.html:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>iframe3</title> </head> <body> <script type="text/javascript"> var iframe2=parent.test2(); iframe2.contentWindow.c();//iframe3调用iframe2中的方法 </script> </body> </html>
Demo2는 하위 페이지 간의 상호 호출도 구현합니다.