Как отправлять уведомления из JavaScript, когда окно браузера закрыто?

Как пользователю предоставить уведомления, если он покинул сайт?
  • 1 июля 2024 г. 10:52
Ответы на вопрос 3
Для отправки уведомлений из JavaScript, когда окно браузера закрыто, можно использовать событие `beforeunload`. Это событие срабатывает перед тем, как окно браузера будет закрыто, и позволяет выполнить определенные действия, например, отправить уведомление или сообщение.

Пример использования события `beforeunload` для отправки уведомления при закрытии окна браузера:

```javascript
window.addEventListener('beforeunload', function(e) {
    e.preventDefault();
    e.returnValue = '';
    alert('Уведомление: Вы уверены, что хотите закрыть страницу?');
});
```

Чтобы предоставить уведомления пользователю, если он покинул сайт (например, перешел на другую страницу или закрыл вкладку), можно использовать событие `beforeunload` в комбинации с функцией `fetch` или другим методом отправки данных на сервер. Например, можно отправить запрос на сервер, когда пользователь покидает страницу, и на сервере записать информацию о действии пользователя.

Пример использования события `beforeunload` и функции `fetch` для отправки запроса при покидании пользователя сайта:

```javascript
window.addEventListener('beforeunload', function() {
    fetch('https://example.com/log-action', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            action: 'leftSite',
            userId: 123
        })
    })
    .then(response => {
        console.log('Данные успешно отправлены на сервер');
    })
    .catch(error => {
        console.error('Ошибка при отправке данных на сервер:', error);
    });
});
```

Обратите внимание, что событие `beforeunload` может быть злоупотреблено для отображения навязчивых уведомлений или предотвращения закрытия окна браузера. Поэтому следует быть осторожным при использовании этого события и действовать этично по отношению к пользователям.
Похожие вопросы