(窗口:onbeforeunload)=“ onUnload($事件)”不起作用

时间:2018-12-13 15:59:47

标签: angular typescript

我具有onbeforeunload函数来检测浏览器窗口的关闭,但是当我关闭它时,它不执行确认功能。 我正在使用角度2。

=TEXT(EOMONTH(TODAY(),-1),"mmmm")
export class AppComponent implements OnInit {

  constructor(private router: Router,
    private _fireBase: AngularFireDatabase) {
  }

  ngOnInit() {
    this.router.events.subscribe((evt) => {
      if (!(evt instanceof NavigationEnd)) {
        return;
      }
      window.scrollTo(0, 0);
    });
  }

  onUnload(event) {
    console.log('funciona', event);
    confirm('desea salir');
  }
}

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式进行操作:

 @HostListener('window:beforeunload', ['$event'])
 doSomething($event) {
   $event.returnValue= true;
 }

但是请注意,根据MDN

  

为防止不必要的弹出窗口,除非与页面进行了交互,否则某些浏览器不会显示在beforeunload事件处理程序中创建的提示。而且,有些根本不显示它们。

就我而言,在Chrome上,仅当打开开发者工具控制台(检查模式)时,弹出窗口才会显示。

相关问题