【发布时间】:2020-11-21 23:49:49
【问题描述】:
当用户点击 Chrome 窗口关闭按钮(右上角)时,我正在尝试显示 Angular Material 对话框(弹出窗口)。 Dialog 模式应该提示用户,如果他们想要保存更改,或者取消,
但是,它只显示快速第二次的模式,然后在不等待用户的情况下关闭。 使用下面的代码参考。怎么解决?
How can we detect when user closes browser?
@HostListener('window:beforeunload', ['$event'])
beforeunloadHandler(event) {
this.openDocumentSaveDialog();
}
public openDocumentSaveDialog(): void {
const documentSaveDialogRef = this.documentSaveDialog.open(DocumentSaveDialogComponent, {
width: '600px',
height: '200px',
disableClose: true,
autoFocus: false,
data: null
});
documentSaveDialogRef.afterClosed().subscribe(result => {
this.closeMenu.emit()
});
}
注意:我们不想显示原生 chrome 浏览器弹出窗口,而是自定义弹出窗口。
【问题讨论】:
-
我认为必须有一部分代码告诉您要等到用户点击。在这里,您只是告诉在关闭之前显示弹出窗口。
标签: javascript angular typescript angular-material angular10