我有一个非常奇怪的问题,请不要问我为什么需要这个......
我有一个page1。 Page1有一个链接,使用window.open函数打开新窗口(第2页)。
chatWindow是一个子窗口的处理程序,从window.open函数返回。
现在我从第1页移到第3页(通过链接<a href="...." target="_self">Some Text</a>
)。如果page2关闭或打开,我需要检查page3。
如何将处理程序chatWindow从第1页传递到第3页?
提前谢谢!
答案 0 :(得分:1)
在第2页和第3页,您可以使用window.opener
来引用第1页。在page1中,您可以定义一个检查page2是否仍然打开的方法:window.open
返回新窗口的实例,如果窗口已关闭,则返回null
。
请注意,如果属性位于同一个域,则只能从Windows中读取属性。如果他们来自不同的域,您可以使用window.postMessage
方法启用通信。
假设它们位于同一个域中,您可以使用以下代码(概念代码):
window.page2 = window.open('...');
window.page3 = window.open('...');
// At page3:
if (window.opener && window.opener.page2 != null) { // Not null or undefined
// Do something
}
我使用了全局变量。更好的实现可以包含命名空间:
window.openedWin = {};
window.openedWin.page2 = window.open('...');
...
// At page3:
if (window.opener && window.opener.openedWin && window.opener.openedWin.page2 ...