我用 JavaScript 的 window.open 打开了一个弹出窗口,当我关闭这个弹出窗口时,我想刷新父页面。(通过 onclose 事件?)我该如何做到?
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
我用 JavaScript 的 window.open 打开了一个弹出窗口,当我关闭这个弹出窗口时,我想刷新父页面。(通过 onclose 事件?)我该如何做到?
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
你可以使用 'window.opener' 来访问父窗口,因此在子窗口中编写以下内容:
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
setInterval
检查popupWindow.closed
。 - jchook弹出窗口没有任何可供监听的关闭事件。
另一方面,当窗口关闭时,会设置一个名为 closed 的属性,该属性的值为 true。
您可以设置一个计时器来检查该属性,操作如下:
var win = window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no");
var timer = setInterval(function() {
if(win.closed) {
clearInterval(timer);
alert('closed');
}
}, 1000);
请查看这个可工作的Fiddle示例!
alert('closed');
替换为 location.reload();
。 - Pepe N O在您的子页面上,放置以下内容:
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
并且
<body onbeforeunload="refreshAndClose();">
但作为良好的用户界面设计,您应该使用一个关闭按钮
,因为它更加用户友好。请参见下面的代码。
<script type="text/javascript">
$(document).ready(function () {
$('#btn').click(function () {
window.opener.location.reload(true);
window.close();
});
});
</script>
<input type='button' id='btn' value='Close' />
<script language='javascript'>
var t;
function doLoad() {
t = setTimeout("window.close()",1000);
}
</script>
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
<body onbeforeunload="refreshAndClose();" onLoad='doLoad()''>
window.opener.location.reload();
window.onunload = function(){
window.opener.location = window.opener.location;};
function windowClose() {
window.location.reload();
}
var foo = window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
foo.onbeforeunload= windowClose;
如果您的应用程序在支持HTML5的浏览器上运行,您可以使用postMessage。那里提供的示例与您的相似。
self.opener.location.reload();
在步骤之后,您可以使用父命令(父窗口)访问主页面,然后您可以做任何事情...
function funcx() {
var result = confirm('bla bla bla.!');
if(result)
//parent.location.assign("http://localhost:58250/Ekocc/" + document.getElementById('hdnLink').value + "");
parent.location.assign("http://blabla.com/" + document.getElementById('hdnLink').value + "");
}
function ManageQB_PopUp() {
$(document).ready(function () {
window.close();
});
window.onunload = function () {
var win = window.opener;
if (!win.closed) {
window.opener.location.reload();
}
};
}