Я хотел бы отобразить окно подтверждения и предупредить пользователя, прежде чем он покинет страницу, особенно во время HTTP-запроса.С этой целью я добавил прослушиватель событий к объекту окна в моем компоненте реакции.
componentWillMount() {
window.addEventListener('beforeunload', this.handleBeforeUnload);
}
componentWillUnmount() {
window.addEventListener('beforeunload', this.handleBeforeUnload);
}
handleBeforeUnload(e) {
e.returnValue = 'You sure you want to leave?';
}
Этот фрагмент работает и делает нашу жизнь проще, но есть одна вещь, которая пробудила мое любопытство.
Я вижу окно подтверждения, только если я нажимаю на страницу после загрузки.Он не отображает окно подтверждения собственного браузера, хотя запускает метод handleBeforeUnload.
Может кто-нибудь объяснить, почему window.onbeforeunload работает, только если я фокусируюсь на странице?