我使用以下脚本从弹出窗口自动刷新父窗口。
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,但都不起作用。如何让这两个脚本一起工作,或以另一种方式解决问题?
答案 0 :(得分:0)
由于此代码
,它无法正常工作var daddy = window.self;
daddy.opener = window.self;
当你这样做时,你试图重新设置window.opener(到弹出窗口),所以你最终调用
window.opener.location.reload();
不会在开场白中调用reload
,而是在弹出窗口中重新加载。
那么,为什么不做呢
<script>close();</script>
弹出窗口中的?
答案 1 :(得分:0)
它不漂亮,但我找到了解决方案。当我添加脚本以自动关闭子项时,似乎刷新的脚本没有时间运行。我在两个脚本之间添加了1秒的延迟,一切正常。
上面的用户提供了更有说服力的解决方案。 onbeforeunload以更好的方式解决了这个问题。