我在 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>
弹出窗口没有任何可以收听的关闭事件。
另一方面,当窗口关闭时,有一个 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);
请参阅这个工作小提琴示例!
在您的子页面上,放置以下内容:
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
和
<body onbeforeunload="refreshAndClose();">
但作为一个好的 UI 设计,你应该使用 Close button
,因为它对用户更友好。请参阅下面的代码。
<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.open 将返回对新创建窗口的引用,前提是打开的 URL 符合Same Origin Policy。
这应该有效:
function windowClose() {
window.location.reload();
}
var foo = window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
foo.onbeforeunload= windowClose;
就我而言,我在父页面中单击链接按钮时打开了一个弹出窗口。在关闭孩子时刷新父母使用
window.opener.location.reload();
在子窗口中导致重新打开子窗口(我猜可能是因为查看状态。如果我错了,请纠正我)。所以我决定不重新加载父页面并再次加载页面并为其分配相同的网址。
为了避免在关闭弹出窗口后再次打开弹出窗口,这可能会有所帮助,
window.onunload = function(){
window.opener.location = window.opener.location;};
如果您的应用在支持 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 + "");
}
您可以在父页面中使用以下代码。
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
以下代码将设法在关闭后刷新父窗口:
function ManageQB_PopUp() {
$(document).ready(function () {
window.close();
});
window.onunload = function () {
var win = window.opener;
if (!win.closed) {
window.opener.location.reload();
}
};
}