Iframe父页面与子页面之间的相互调用

Posted 熊熊之火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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="调用子页面中的函数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 lang="en">
    <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 lang="en">
    <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 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父页面与子页面之间的相互调用的主要内容,如果未能解决你的问题,请参考以下文章

Iframe父页面与子页面之间的相互调用

Iframe父页面与子页面之间的相互调用

iframe 父页面与子页面之间的方法的相互调用

jqueryjs调用iframe父窗口与子窗口元素的方法整理

jqueryjs调用iframe父窗口与子窗口元素的方法整理

iframe页面之间元素获取与方法调用