我想在关闭弹出窗口时刷新父窗口。我可以使用以下
window.opener.location.reload();
但是我的要求略有不同,因为我必须编写所有这些代码来刷新父页面本身的父页面。
我无法在弹出窗口中编写一行代码。
谢谢,
答案 0 :(得分:1)
我知道的唯一方法是频繁检查子窗口状态,但this question
清楚地解释了这一点。那就是说,我不知道这是否可以替代,但是使用灯箱而不是新窗口弹出窗口可以让你完全控制你的事件,因为整个事情都停留在同一个窗口。
大多数lightbox API都提供这种功能(在灯箱中加载外部网站而不是通常的图像),使用动态生成的iFrame来显示外部网站。这个解决方案也有缺点(例如:在灯箱中加载的框架破坏代码)但是看起来比普通的新窗口更好......
我已经在项目上使用Shadowbox了很长一段时间并且总是喜欢它,但是还有很多其他的,甚至可能更好。
答案 1 :(得分:0)
您需要在弹出窗口中处理卸载事件处理程序并在主窗口中执行重新加载。在主窗口中,添加JavaScript:
function popUpClosed() {
window.location.reload();
}
在弹出窗口中:
window.onunload = function() {
if (window.opener && !window.opener.closed) {
window.opener.popUpClosed();
}
};
因此,如果您需要在所有浏览器中使用您的代码,尤其是IE,那么您的问题的答案通常是否定的。