angular - 如何找到窗口是否关闭或没有角度
问题描述
嘿,我在我的项目中使用 angular 5。对于一些点击,我正在另一个选项卡中打开一些 URL。我想在关闭新打开的选项卡时进行一些更新。下面是我尝试过的代码,但我无法收到任何警报消息。我哪里出错了?
commentAction(action: string, id: number) {
var url ='someurl';
var win = window.open(url, '_blank');
win.focus();
var timer = setInterval(function() {
alert('timer is running');
if(win.closed) {
clearInterval(timer);
alert('doing some update');
}
}, 1000);
}
解决方案
您用来检测新窗口是否关闭的错误方法是每 1000 秒检查一次。你也应该在警报后做 clearInterval 。
在新打开的窗口中有这个: -
@HostListener('window:beforeunload', ['$event'])
beforeUnloadHander(event) {
window.parent.postMessage('closed');
}
在现有组件中
@HostListener('window:message', ['$event'])
onMessage(event) {
if(event ==='closed') {
alert('doing some update');
}
}
推荐阅读
- entity-framework - AspNet Boilerplate 并行数据库访问通过 AppService 中的实体框架
- ffmpeg - 无法在 os x 上使用 ffmpeg 从 mp4(h264) 文件中蒸汽 rtsp:连接被拒绝 无法为输出文件写入标头
- javascript - 使用枚举索引对象
- mongodb - 查找集合中存在且具有非空值或非空值的所有属性
- c# - 如何使用 C# 更改 Windows 媒体播放器的纵横比
- excel - 如何创建要在 Excel 工作表中使用的公式?
- perl - 为什么 perl qx 挂在 Mojolicious::Lite 中而不是普通程序中?
- python - 删除python中字符串中所有类型的括号(带内容)
- pyspark - GroupBy 在 PySpark DataFrame 问题上使用时间频率
- javascript - 如何在 WPforms 中选择特定日期