刷新父级的Javascript不适用于其他脚本

时间:2016-11-21 03:33:55

标签: javascript

我使用以下脚本从弹出窗口自动刷新父窗口。

window.onunload = refreshParent;
function refreshParent() {
    window.opener.location.reload();
}
</script>

当我手动关闭窗口时,脚本工作正常。问题是当我使用以下脚本自动关闭弹出窗口时。

<script>var daddy = window.self; 
daddy.opener = window.self;
daddy.close();</script>

如果我手动关闭窗口,父页面会刷新,一切正常。但是,如果我添加第二个脚本,要自动关闭弹出窗口,父页面不会刷新,但弹出窗口会关闭。我尝试将第一个脚本更改为body.onload和window.onload,但都不起作用。如何让这两个脚本一起工作,或以另一种方式解决问题?

2 个答案:

答案 0 :(得分:0)

由于此代码

,它无法正常工作
var daddy = window.self; 
daddy.opener = window.self;

当你这样做时,你试图重新设置window.opener(到弹出窗口),所以你最终调用

window.opener.location.reload();

不会在开场白中调用reload,而是在弹出窗口中重新加载。

那么,为什么不做呢

<script>close();</script>
弹出窗口中的

答案 1 :(得分:0)

它不漂亮,但我找到了解决方案。当我添加脚本以自动关闭子项时,似乎刷新的脚本没有时间运行。我在两个脚本之间添加了1秒的延迟,一切正常。

上面的用户提供了更有说服力的解决方案。 onbeforeunload以更好的方式解决了这个问题。