【问题标题】:Javascript Re-establish window parent / child releationship when parent is closedJavascript在父关闭时重新建立窗口父/子关系
【发布时间】:2012-11-30 16:38:12
【问题描述】:

好的,这就是场景。

我有一个打开新窗口的页面。 然后它在这个新窗口中设置各种属性,例如父 url 和父窗口名称。

子窗口创建一个 javascript 计时器并每隔 x 秒回调父窗口。

父窗口关闭。

当子计时器结束时,我看到 window.opener 现在为空。

如何检查是否打开了另一个带有父 url 和父窗口名称的窗口? 那么,如果我找到匹配项,如何在不重新加载子窗口的情况下将此匹配窗口设置为子窗口的父窗口?

【问题讨论】:

  • 别以为你能做到——如果可以的话,一个页面可以看到你此时打开的所有窗口/选项卡/页面。解决此问题的最佳方法是让两者都与服务器通信。
  • 我害怕那个。我会看看我有什么选择。
  • 通常对于这样的父子关系,当父关闭时,您让父关闭子。否则,除非孩子将父母作为孩子重新打开,否则无法将孩子重新连接到父母,这会使事情变得过于复杂。

标签: javascript


【解决方案1】:

我没有在所有主流浏览器中测试过这个。

// 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”。

上述代码最好的部分是,无论父页面是否刷新,都可以获取窗口的引用。'

复制自: http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/48485/parentchild-windows-references#post1323452

【讨论】:

  • 在 ie7-9、FF 17.0.1、Opera 12.11、Safari 6.0.2 上测试并运行。
  • 我相信这个问题是如果子窗口仍然以相同的 WindowName 打开它会重新加载它。我们在子窗口中运行了一个 java 小程序,无法重新加载它,因为用户的工作将会丢失。
  • 似乎没有为我重新加载。找到一个使用这种模式的页面。 josephj.com/lab/2011/window-open-reconnect/demo.html
猜你喜欢
  • 2012-12-15
  • 1970-01-01
  • 2011-01-19
  • 2023-03-07
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多