html页面中iframe嵌套页面的父页面和子页面js方法互相调用

时间:2022-12-21 11:29:01

我们在写html页面或者说是jsp页面是,有时候需要在一个页面中使用iframe标签嵌套另一个页面,而两个页面有些数据需要交互,这个时候就会用到js技术,互相调用方法,

当我们在父页面中需要调用iframe标签中嵌入的子页面中的js方法时,可以使用:


document.getElementById(iframe的id).contentWindow.childtest();


注:

iframe的id:指的是需要调用的子页面的iframe的id;

childtest():是子页面中的js方法,夫页面就是要调用子页面的这个方法。


当在子页面中需要调用父页面中的方法时,使用如下js:


window.parent.parenttest();


注:


parenttest():是父页面中的js方法。



下面是一个具体的例子:


父页面fatherPage.html代码:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Parent Page</title>
        <script language="javascript" type="text/javascript">
            function parenttest() {
                alert("这是父页面的方法!");
            }
            function btnClick() {
				alert("启动调用子页面的方法");
                document.getElementById("childframe").contentWindow.childtest();
            }
    </script>
</head>
<body>
   <div style="margin:auto;">
       <h1>This is the Parent Page.</h1>
       <input type="button" value="调用子页面的方法"  onclick="btnClick()"/> 
    </div>
    <div style="margin:auto;">
       <iframe style="width:300px; height:300px;" id="childframe" src="childPage.html"></iframe>
    </div>
</body>
</html>


子页面childPage.html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Child Page</title>
    <script language="javascript" type="text/javascript">
      function childtest() {
          alert("这是子页面的方法!");
      }
      function btnClick() {
			alert("启动调用父页面的方法");
          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>