父窗口如何调用子窗口里的js方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父窗口如何调用子窗口里的js方法相关的知识,希望对你有一定的参考价值。

如题
父窗口如何调用子窗口里的js方法。

1、定义一个子窗口

new.htm
<script>
function testa()//定义子窗口的方法

</script>

2、定义父窗口,并调用子窗口的方法

<script>
function openWindow()
var newWindow = window.open(“new.htm”, "", "width=400,height=300 ");//打开子窗口,并返回子窗口的window
newWindow.testa();//调用子窗口的方法

</script>

参考技术A 通过iframe的contentWindow获取到子窗口的window对象,通过此对象去调用子窗口的方法,话说你这里的子窗口是指的iframe吧?如果不是,就当我没说 参考技术B 方式:
window.子窗口名称.子窗口里的js方法
前提要求是父窗口于子窗口应该在同一个域下,否则js跨域会有拒绝访问错误的。

js子窗口调用父窗口函数并传递对象给父窗口的方法

--父窗口

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Parent.aspx.cs" Inherits="Parent" %>

<!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 runat="server">
    <title>无标题页</title>
    <script language="javascript" type="text/javascript">
        function OpenWin()
        
            window.open("child.aspx","new")
        
        
        function shuaxin(obj)//obj是接收到的对象
        
            alert(obj.name);//获取对象属性。
        
        
        function shuaxinb()
        
            window.location.href=window.location.href;
        
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        父窗口<br />
        <br />
        <input type="text"  id="ddddd" style="width: 323px"/><br />
        <input type="button" id="Button1" value="刷新1" onclick="javascript:shuaxinb();"  />
        <input type="button" id="d" value="打开1" onclick="javascript:OpenWin();" />
        
        </div>
    </form>
</body>
</html>

--子窗口

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Child.aspx.cs" Inherits="Child" %>

<!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 runat="server">
    <title>无标题页</title>
    <script language="javascript" type="text/javascript">
        function closew()
        
           var parent= window.opener;

          var person=;

person.name="Tom";

person.age=123;

    // parent.location.reload(); 

            parent.shuaxin(person);//把person对象传递过去
            var parentControl=parent.document.getElementById("ddddd");
            parentControl.value="我是被子窗口赋值过来的,哈哈";
            window.close();
        
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        子窗口<br />
        
        <input type="button" id="d" value="关闭1" onclick="javascript:closew();" />
    </div>
    </form>
</body>
</html>

  

以上是关于父窗口如何调用子窗口里的js方法的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 子窗口调用父窗口js方法

js页面的父窗口如何控制关闭window.showModalDialog弹出的子窗口

如何在父窗口中运行子窗口

在iframe中如何调用父窗体的方法?

js 子窗口调用父框框方法

提问:js如何弹出子窗口并父窗口不能操作