【发布时间】:2025-12-08 16:55:01
【问题描述】:
我正在从父窗口弹出一个子窗口。现在,在子窗口中,我有一个用户将填写并提交的 html 表单,请求将在服务器站点上进行。现在,我希望对这个请求的响应重定向到父窗口和我的子窗口自动关闭。希望我足够清楚。如果不让我知道。提前谢谢你。
【问题讨论】:
标签: javascript
我正在从父窗口弹出一个子窗口。现在,在子窗口中,我有一个用户将填写并提交的 html 表单,请求将在服务器站点上进行。现在,我希望对这个请求的响应重定向到父窗口和我的子窗口自动关闭。希望我足够清楚。如果不让我知道。提前谢谢你。
【问题讨论】:
标签: javascript
如果弹出窗口是使用window.open创建的,那么弹出窗口可以使用window.opener访问打开的窗口。
在主窗口中,你必须创建一个函数来从弹出窗口接收数据,如下所示:
window.receiveDataFromPopup = function(data) {
// do things with data.
};
然后在弹出的窗口中,你可以像这样在opener上调用那个函数:
window.opener.receiveDataFromPopup(data);
要关闭窗口,只需使用
window.close();
【讨论】:
查看jQuery Popup Window Return Value to Parent
基本上逻辑可以是:
您的响应返回一个页面,该页面包含一个 hidden-div,其中包含您要显示的消息(使用 CSS 集 display:none; 隐藏)
返回的子页面还包含一些用 DIV 内容填充父窗口的 JavaScript,parent/* or opener */.document.getElementById(...).innerHTML = ...;
或者调用父级上的一个函数来告诉它它现在已经完成,例如window.opener/*or parent*/.formIsComplete();,其中formIsComplete() 是父文档/窗口中的一个 JavaScript 函数。
子窗口的最后一行JavaScript,会自行关闭,就像window.close();一样简单。
【讨论】:
<script type='text/javascript'>
window.opener.location.reload();
window.close();
</script>
【讨论】:
有一种方法可以从子窗口访问父窗口。这是
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();
【讨论】: