首页 > 代码库 > Iframe父页面与子页面之间的相互调用
Iframe父页面与子页面之间的相互调用
iframe元素就是文档中的文档。
window对象: 浏览器会在其打开一个HTML文档时创建一个对应的window对象。但是,如果一个文档定义了一个或者多个框架(即:包含一个或者多个frame或者iframe标签),浏览器就会为原始文档创建一个window对象,再为每个iframe创建额外的window对象,这些额外的window对象是原始窗口的子窗口。
contentWindow: 是指指定的iframe或者iframe所在的window对象
Demo1
父页面fu.html:
<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <title>父页面</title> </head> <body> <input type=button value=http://www.mamicode.com/"调用子页面中的函数childSay函数" onclick="callChild()"> <iframe id="myFrame" src=http://www.mamicode.com/"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 lang="en"> <head> <meta charset="utf-8"> <title>子页面</title> </head> <body> <input type=button value=http://www.mamicode.com/"调用父页面中的parentSay()函数" onclick="callParent()"> <script type="text/javascript">function childSay(){alert("我是子页面的say方法");}function callParent() {parent.parentSay();} </script> </body></html>
Demo2
父页面iframe1.html:
<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <title>父页面与子页面之间的调用</title> </head> <body> <iframe src=http://www.mamicode.com/"http://localhost/iframe/iframe3.html" id="iframe3"></iframe> <iframe src=http://www.mamicode.com/"http://localhost/iframe/iframe2.html" id="iframe2"></iframe> <div class="iframe1">我是父页面</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 lang="en"> <head> <meta charset="utf-8"> <title>子页面</title> </head> <body> <div id="test">aaa</div> <div class="iframe2">子页面</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 lang="en"> <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也实现了子页面与子页面之间相互调用。
Iframe父页面与子页面之间的相互调用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。