добавить тайм-аут в предупреждение до загрузки. Машинопись Angular - PullRequest
0 голосов
/ 03 апреля 2020

Я использую событие onbeforeunload, чтобы запретить пользователю покидать страницу до конца sh некоторые вещи, потому что я не могу изменить сообщение в предупреждении onBeforeUnload, я хочу отобразить свое собственное предупреждение, чтобы сообщить пользователю что нужно сделать, прежде чем покинуть страницу. Дело в том, что если я установлю событие следующим образом:

@HostListener('window:beforeunload', ['$event'])
  beforeUnloadHandler($event) {
    if (!this.documento) {
      this._toastr.warning("Debe subir un documento adjunto a esta correspondencia.", "Correspondencia Incompleta");
      $event.preventDefault();
      $event.returnValue = "test";
      return false;
    }
  }

, сначала будет показано предупреждение браузера, и я просто смогу увидеть свое предупреждение, когда нажимаю кнопку «не уходить» в предупреждении. Итак, я попробовал это:

@HostListener('window:beforeunload', ['$event'])
  beforeUnloadHandler($event) {
    if (this.documento) {
      this._toastr.warning("Debe subir un documento adjunto a esta correspondencia.", "Correspondencia Incompleta");
      setTimeout(function () {

      $event.preventDefault();
      $event.returnValue = "test";
        return false;
      }, 3000);
    }
  }

Но с этим время ожидания работает, но теперь предупреждение браузера не работает, поэтому, когда время ожидания заканчивается, страница просто обновляется / закрывается. Есть ли способ поставить тайм-аут в оповещение браузера, чтобы сначала показать мое оповещение / тостер? Я работаю в Angular 6.

...