2011-04-13 192 views
19

我有一个打开父窗口的子窗口的页面。关闭子窗口,重定向父窗口

当用户在子窗口中完成了一些操作后,我需要关闭子窗口,并将其父窗口重定向到一个页面上,点击子窗口中的按钮。

任何想法?

回答

24

从孩子:

opener.location.href = '/redirect'; 
close(); 
+0

但IE显示弹出窗口阻止:(在IE中也可以使用任何解决方案? – Binod 2013-12-19 15:12:44

+0

@Binod - IE阻止弹出窗口与此问题无关。请问一个新的问题,如果你有问题,这个问题已经接近3年了 – 2013-12-19 18:59:06

+0

问题是相同的原点策略如果窗口不是同一个原点,那么IE认为这个重定向是一个弹出 – Binod 2013-12-24 10:15:16

16

的关键是使用window.opener来访问父窗口:

<script> 
    window.opener.location = '/redirect.html'; 
    window.close(); 
</script> 
+0

你想翻转这些线,想想:) – 2011-04-13 22:23:17

+1

@cwolves:它可以工作。即使关闭窗口对象,您仍可以访问窗口对象的属性。 – 2011-04-13 22:26:26

+0

这并不能保证。当然,它可能总是在这种情况下工作,但浏览器将开始拆除窗口,并最终杀死JS执行mid-statement。如果你在'window.close()'之后有长时间运行的代码,那么它有可能无法完成。也有可能一些浏览器会说“window.close()'”之后没有允许运行的代码,并立即终止它 – 2011-04-13 22:28:45

1

请尝试以下:

window.opener.location.reload(); 
close(); 
  1. window.opener.location.reload();将重新加载父窗口。
  2. close()方法将关闭子窗口

它工作正常的我。