Подтвердить что ты не робот

Вкладка "Reactjs Browser" Закрыть событие

Привет, я хочу знать, как закрыть сообщение на вкладке браузера. Я использую Reactjs.

handleWindowClose(){
    alert("Alerted Browser Close");
},
componentDidMount: function() {
    window.addEventListener('onbeforeunload', this.handleWindowClose);
},

componentWillUnmount: function() {
    window.removeEventListener('onbeforeunload', this.handleWindowClose);
}

вот что я пробовал добавить к моему компоненту реакции. Пожалуйста, расскажите мне, как двигаться дальше.

4b9b3361

Ответ 1

Вы сделали это правильно, кроме имени события и того факта, что предупреждение будет заблокировано в этом конкретном событии.

Вы можете показать сообщение следующим образом:

window.addEventListener("beforeunload", (ev) => 
{  
    ev.preventDefault();
    return ev.returnValue = 'Are you sure you want to close?';
});

Надеюсь, что это поможет.

Ответ 2

На фоне ответа хорошо сработал для меня.

Как я это использовал:

class MyComponent extends Component {
    // Things to do before unloading/closing the tab
    doSomethingBeforeUnload = () => {
        // Do something
    }

    // Setup the 'beforeunload' event listener
    setupBeforeUnloadListener = () => {
        window.addEventListener("beforeunload", (ev) => {
            ev.preventDefault();
            return this.doSomethingBeforeUnload();
        });
    };

    componentDidMount() {
        // Activate the event listener
        this.setupBeforeUnloadListener();
    }

    // Render method.
    render() {
        return (
            <div>My component</div>
        )
    }
}