zoukankan      html  css  js  c++  java
  • iframe 父窗口和子窗口相互的调用

    一、父窗口调用iframe子窗口方法

    1、HTML语法:<iframe name="myFrame" src="child.html"></iframe>

    2、父窗口调用子窗口:myFrame.window.functionName();

    3、子窗品调用父窗口:parent.functionName();

    简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行

    4、父窗口页面源码:

    <html>   
    <head>   
    <script   type="text/javascript">   

    function say() {
       alert("parent.html------>I'm at parent.html");
       }

    function callChild()
    {   
       //document.frames("myFrame").f1();
       myFrame.window.say();
    }   
    </script>   
    </head>   
        
    <body>     
    <input   type=button   value="调用child.html中的函数say()" onclick="callChild()">
    <iframe name="myFrame" src="child.html"></iframe>
    </body>   
    </html>  
    5、子窗口页面:

    <html>   
    <head>   
    <script type="text/javascript">
          
    function say()   
    {   
              alert("child.html--->I'm at child.html");   
    }

    function callParent() {
       parent.say();
       }
    </script>   
    </head>   
    <body>   
    <input   type=button   value="调用parent.html中的say()函数"   onclick="callParent()">   
    </body>   
    </html>
    二、iframe 父窗口和子窗口相互的调用方法

    1、IE中使用方法:

    父窗口调用子窗口:iframe_ID.iframe_document_object.object_attribute = attribute_value
    例子:onClick="iframe_text.myH1.innerText='http://www.pint.com';"
    子窗口调用父窗口:parent.parent_document_object.object_attribute = attribute_value
    例子:onclick="parent.myH1.innerText='http://www.pint.com';"

    2、Firefox中使用方法:

    上面在IE下没有问题,但在firefox下不正常。在firefox下,应该是如下调用方法:

    父窗口调用子窗口:window.frames["iframe_ID"].document.getElementById("iframe_document_object"­).object_attribute = attribute_value
    例: window.frames["iframe_text"].document.getElementById("myH1").innerHTML= "http://hi.wonsoft.cn";
    子窗口调用父窗口:parent.document.getElementById("parent_document_object").object_attribute = attribute_value
    例: parent.document.getElementById("myH1").innerHTML = "http://wonsoft.cn";

    3、完整的例子
    test.htm

    <HTML>
        <HEAD>
            <TITLE> Test Page </TITLE>
            <script src="prototype-1.4.0.js"></script>
            <script language="javascript">
                function show()
                {
                    window.frames["iframe_text"].document.getElementById("myH1").innerHTML = "http://hi.wonsoft.cn";
                }
            </script>
        </HEAD>
        <BODY>
            <iframe height="350" width="600" src="iframe_test.htm" name="iframe_text"></iframe>
            <form action="" method="post">
                <input name="haha" id="haha" type="text" maxlength="30" value="haha" />
                <br />
                <textarea cols="50" rows="5" id="getAttributeMethod"></textarea>
                <input type="button" onClick="show();" value="提交"/>
            </form>
            <h1 id="myH1">d</h1>
        </BODY>
    </HTML>
    frame_test.htm

    <!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>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
        <title>无标题文档</title>
    </head>
    <script language="javascript">
        function show()
        {
          parent.document.getElementById("myH1").innerHTML =http://wonsoft.cn;
        }
    </script>
    <body>
        <h1 id="myH1">ha</h1>
        <form action="" method="post">
          <input name="abc" id="abc" type="text" maxlength="30" value="abc" />
          <br />
          <textarea cols="50" rows="10" id="text"></textarea>
          <br />
          <input type="button" value="提交" onclick="show();"/>
        </form>
    </body>
    </html>
    test.htm里面firefox下访问iframe 必须用name,不能用id,所以要改为name="iframe_test" 。(http://chenling1018.blog.163.com/blog/static/1480254200811891041694/)

    三、在c#中如何动态改变iframe的src值,动态指向一个网页

    1)如果是javascript脚本  
    给iframe加一个ID如<iframe   id=frmList……  
    在脚本写  
    frmList.document.location=strNewUrl  

    2)如果是后台程序  
    给iframe加一个ID,再加上runat=server   如<iframe   id=frmList   runat=server   ……    
    在程序里写  
    frmList.Attributes.Add("src",strNewUrl);

    iframe大家都很熟悉,但很少我们会直接调用iframe链接页面的函数,可能有不少人还不知道如何调用,这里发个简单的例子来讲解如何调用iframe内的函数

    sxmsxm.html

    <script> function sonfun() { alert('ok'); } </script>

    main.html

    <iframe id="sxm" src="sxmsxm.html" width='100' height='100'></iframe>

    在main.html中执行 sxmsxm.html中的sonfun() 有两种方式

    1、 sxm.sonfun()

    2、document.getElementById("sxm").contentWindow.sonfun();

  • 相关阅读:
    3.Appium运行时出现:Original error: Android devices must be of API level 17 or higher. Please change your device to Selendroid or upgrade Android on your device
    3.Python连接数据库PyMySQL
    2.Python输入pip命令出现Unknown or unsupported command 'install'问题解决
    2.Linux下安装Jenkins
    5.JMeter测试mysql数据库
    Android 4学习(7):用户界面
    Android 4学习(6):概述
    Android 4学习(5):概述
    Android 4学习(4):概述
    Android 4学习(3):概述
  • 原文地址:https://www.cnblogs.com/zhwl/p/2383062.html
Copyright © 2011-2022 走看看