1. 当我们在父页面中需要调用iframe标签中嵌入的子页面中的js方法时,可以使用:
document.getElementById(iframe的id).contentWindow.childtest();
iframe的id:指的是需要调用的子页面的iframe的id;
childtest():是子页面中的js方法,夫页面就是要调用子页面的这个方法。
2.当在子页面中需要调用父页面中的方法时,使用如下js:
window.parent.parenttest();
具体代码:
父文件
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Parent Page</title> <style> h1, input { margin-left: 50px } input { border: none; background: #317ef3; color:#fff; border-radius:3px; padding:5px 10px; margin-bottom:10px; } #childframe{ border:1px solid green; margin: 0 50px; } #childframe1 { border: 1px solid #f00; } </style> <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script> <script language="javascript" type="text/javascript"> //// 方法1: // //父元素的方法 // function parenttest() { // alert("这是父页面的方法!"); // } // //调取iframe 子元素页面childtest()的方法 // function btnClick1() { // document.getElementById("childframe").contentWindow.childtest(); // // $("#childframe")[0].contentWindow.childtest(); // } //方法2 $(function () { //调取iframe 子元素页面childtest()的方法 function btnClick1() { $("#childframe")[0].contentWindow.childtest(); } $("#btn").click(function () { btnClick1() }) }) //父元素的方法 function parenttest() { alert("这是父页面的方法!"); } </script> </head> <body> <div style="margin:auto;"> <h1 style="font-size:18px;color:green">iframe父子级别互调方法实现</h1> <!--<input type="button" id="btn" value="调用子页面的方法" onclick="btnClick1()" />--> <input type="button" id="btn" value="调用子页面的方法" /> </div> <div style="margin:auto;"> <iframe style="width:300px; height:300px;" id="childframe" src="ChildPage.html"></iframe> <iframe style="width:300px; height:300px;" id="childframe1" src="ChildPage1.html"></iframe> </div> </body> </html>
子文件
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Child Page</title> <style> h1{ font-size:18px; color:gold;} input { border: 1px solid #317ef3; background: none; color: #317ef3; border-radius: 3px; padding: 5px 10px; margin-bottom: 10px; } </style> <script language="javascript" type="text/javascript"> //function childtest() { // alert("这是子页面的方法!"); // } var childtest = function () { alert("这是子页面的方法!"); } function btnClick() { window.parent.parenttest(); } </script> </head> <body> <div style="margin:auto;"> <h1>This is the Child Page.</h1> <input type="button" value="调用父页面的方法" onclick="btnClick()" /> </div> </body> </html>