【问题标题】:return back to parent window using javascript使用javascript返回父窗口
【发布时间】:2025-12-08 16:55:01
【问题描述】:

我正在从父窗口弹出一个子窗口。现在,在子窗口中,我有一个用户将填写并提交的 html 表单,请求将在服务器站点上进行。现在,我希望对这个请求的响应重定向到父窗口和我的子窗口自动关闭。希望我足够清楚。如果不让我知道。提前谢谢你。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    如果弹出窗口是使用window.open创建的,那么弹出窗口可以使用window.opener访问打开的窗口。

    在主窗口中,你必须创建一个函数来从弹出窗口接收数据,如下所示:

    window.receiveDataFromPopup = function(data) {
        // do things with data.
    };
    

    然后在弹出的窗口中,你可以像这样在opener上调用那个函数:

    window.opener.receiveDataFromPopup(data);
    

    要关闭窗口,只需使用

    window.close();
    

    【讨论】:

      【解决方案2】:

      查看jQuery Popup Window Return Value to Parent

      基本上逻辑可以是:

      1. 您的响应返回一个页面,该页面包含一个 hidden-div,其中包含您要显示的消息(使用 CSS 集 display:none; 隐藏)

      2. 返回的子页面还包含一些用 DIV 内容填充父窗口的 JavaScript,parent/* or opener */.document.getElementById(...).innerHTML = ...;
        或者调用父级上的一个函数来告诉它它现在已经完成,例如window.opener/*or parent*/.formIsComplete();,其中formIsComplete() 是父文档/窗口中的一个 JavaScript 函数。

      3. 子窗口的最后一行JavaScript,会自行关闭,就像window.close();一样简单。

      【讨论】:

        【解决方案3】:
        <script type='text/javascript'>
          window.opener.location.reload();    
          window.close();
        </script>
        

        【讨论】:

          【解决方案4】:

          有一种方法可以从子窗口访问父窗口。这是

          window.opener //use window.opener to access the parent window.
          

          所以在子窗口中,一旦您的表单提交完成,只需调用

          window.opener.yourFunc() //Your func is a function on parent. Call this from the child.
          

          调用此函数后,使用关闭您的子窗口

          window.close();
          

          【讨论】: