我已经通过点击win
创建了一个新的浏览器窗口#new-window-id
。我有带有该窗口的事件系统。例如,关闭win.closed
。一切正常,直到我转到创建的窗口内的链接。
$('#new-window-id').on('click', function(){
var finalUrl = $(this).attr('href');
var win = window.open(
finalUrl,
'fullWindowMode');
console.log('created '+ win.name);
var timer = setInterval(function() {
if(win.closed) {
console.log('closed '+ finalUrl);
clearInterval(timer);
document.getElementById('#iframeID').contentWindow.location.reload();
}
}, 1000);
});
所以我的主页上有iframe。我想在新窗口中打开它并在那里编辑内容。然后,在关闭创建的窗口后,应该更新我的主页iframe。
步骤:
- 单击链接
#new-window-id
/ //打开窗口。- 关闭窗口。
win.closed
正在工作!
什么时候不起作用
步骤:
- 单击链接
#new-window-id
/ //打开窗口。- 在窗口中编辑博客文章。 (网址已更改)
- 关闭窗口。事件
win.closed
无效!
但是如果我在创建的窗口中浏览,它就会中断。存在保持这种连接的方法吗?
答案 0 :(得分:1)
我做了以下事情:
1.创建了一个窗口let w = window.open('http://ya.ru')
2.在该窗口中导航(在同一站点内)
3.在主窗口(w.closed
中选中false
4.然后关闭弹出窗口,然后再次检查(true
)。
看起来w.closed
甚至在导航后仍然有效。
但是,如果您在新窗口中导航到另一个原点,那么location.reload()
将无法从主窗口访问。