首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >打开弹出窗口并在关闭弹出窗口时刷新父页面

打开弹出窗口并在关闭弹出窗口时刷新父页面
EN

Stack Overflow用户
提问于 2012-05-29 10:23:01
回答 10查看 372.2K关注 0票数 100

我在JavaScript中用window.open打开了一个弹出窗口,我想在关闭此弹出窗口时刷新父页面。(关闭事件?)我该怎么做呢?

代码语言:javascript
复制
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-05-29 10:35:19

您可以使用'window.opener‘访问父窗口,因此,在子窗口中编写类似以下内容:

代码语言:javascript
复制
<script>
    window.onunload = refreshParent;
    function refreshParent() {
        window.opener.location.reload();
    }
</script>
票数 241
EN

Stack Overflow用户

发布于 2012-05-29 10:31:18

弹出窗口没有任何您可以监听的关闭事件。

另一方面,当窗口关闭时,有一个closed属性被设置为true。

您可以设置一个计时器来检查该closed属性,并执行以下操作:

代码语言:javascript
复制
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); 

请看这个working Fiddle example

票数 36
EN

Stack Overflow用户

发布于 2012-05-29 10:38:38

在您的子页面上,放入以下内容:

代码语言:javascript
复制
<script type="text/javascript">
    function refreshAndClose() {
        window.opener.location.reload(true);
        window.close();
    }
</script>

代码语言:javascript
复制
<body onbeforeunload="refreshAndClose();">

但是作为一个好的UI设计,你应该使用一个接近的button,因为它对用户更友好。请参阅下面的代码。

代码语言:javascript
复制
<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' />
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10792408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档