的Javascript重新建立窗口父/子releationship当父被关闭
好吧,这里的情况。的Javascript重新建立窗口父/子releationship当父被关闭
我有一个页面打开一个新窗口。 然后,它设置在此新窗口的各种属性,如父URL和父窗口的名字。
子窗口创建一个JavaScript定时器并每隔x秒回调一次父窗口。
父窗口关闭。
当孩子计时器过去时,我看到window.opener现在是空的。
如何检查是否打开了具有父网址和父窗口名称的另一个窗口? 然后,如果我找到一个匹配如何设置此匹配窗口作为孩子的父母无需重新加载子窗口?
我没有在所有主流浏览器中测试过。
// open the child window for first time
window.open('test.html','WindowName');
// re-assigns the reference for the same child window to a variable
WindowRef = window.open('','WindowName');
请注意url参数留空,弹出窗口名称相同。它引用相同的子窗口并将引用对象分配给变量“WindowRef”。
上述代码的最好的部分是,无论父页面是否刷新,您都可以采用窗口的引用。
经过测试并在ie7-9,FF 17.0.1,Opera 12.11,Safari 6.0.2上运行。 –
我相信这个问题是,如果子窗口仍然使用相同的WindowName打开它会重新加载它。我们有一个java小程序运行在子窗口中,不能重新加载,因为用户的工作将会丢失。 –
似乎没有为我加载。找到使用此模式的页面。 http://josephj.com/lab/2011/window-open-reconnect/demo.html –
不要以为你能做到这一点 - 如果你可以,一个页面可以看到所有的窗口/标签/你在这一刻打开页面。最好的解决办法是同时与服务器通信。 – sachleen
我很害怕这个。我会看看我有什么选择。 –
通常为父子关系,如这个,你有父关闭子当父被关闭。否则,除非儿童作为孩子重新开放父母,否则无法将孩子重新连接到父母,这使得事情变得更加复杂。 – zzzzBov