ArM*_*MaN 88 html javascript javascript-events
我在JavaScript打开一个弹出窗口通过window.open,我想刷新父页面当我关闭这个弹出窗口.(onClose事件会?)我怎么能做到这一点?
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
Run Code Online (Sandbox Code Playgroud)
Mor*_*ole 219
您可以使用' window.opener ' 访问父窗口,因此,在子窗口中写下以下内容:
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
Run Code Online (Sandbox Code Playgroud)
Zuu*_*uul 33
弹出窗口没有您可以收听的任何关闭事件.
另一方面,当窗口关闭时,有一个关闭的属性设置为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);
Run Code Online (Sandbox Code Playgroud)
看到这个工作小提琴的例子!
Ray*_*eng 14
在您的子页面上,放置以下内容:
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
Run Code Online (Sandbox Code Playgroud)
和
<body onbeforeunload="refreshAndClose();">
Run Code Online (Sandbox Code Playgroud)
但作为一个好的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' />
Run Code Online (Sandbox Code Playgroud)