Для отправки уведомлений из 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` может быть злоупотреблено для отображения навязчивых уведомлений или предотвращения закрытия окна браузера. Поэтому следует быть осторожным при использовании этого события и действовать этично по отношению к пользователям.