单击按钮后,将打开一个子窗口:
<button id="btn" onclick="myWindow = window.open('http://www.example.com/index', '', 'toolbars=0,resizable,scrollbars')">Start</button>
单击按钮时父窗口将重定向到另一个页面。
$('#btn').click(function(){
parent.location.href = 'http://www.example.com/popup';
});
如果我没有重定向父窗口,我可以从父窗口检查子窗口是否存在,如下所示:
if(!myWindow.closed){
alert('Yup, still there.');}
由于父窗口正在重定向,我无法检查 myWindow
是否关闭。
这怎么可能?
最佳答案
通过 javascript 不可能以简单的方式实现这一点。这是因为安全性。想象一下,如果一个网站可以访问您打开的所有选项卡,那将是多么困惑。因此 Javascript 仅限于它所交付的页面的 DOM。
所以你能做的就是使用 websockets。有一个名为 websocket-rails
的 websocket Rails 实现。这允许您与客户异步通信。这样您就可以实现一种方法来验证客户端是否打开了 vertan 页面。
Websocket 一开始并不那么容易理解,但它们绝对值得一读!
关于javascript - 如果父窗口重定向到其他页面,如何检查子窗口是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30116942/