если в конце функции возвращать false, то событие записывается в базу, но появляется алерт с просьбой подтвердить уход со страницы. без return false в базу ничего не записывается.
window.onbeforeunload = function (e) {
// Ловим событие для Interner Explorer
var e = e || window.event;
const request5 = new XMLHttpRequest();
const url = "https://cors-anywhere.herokuapp.com/http://fixer.ru/cabinet/tracker/hit.php";
user_href = encodeURI(document.location.href);
browser = navigator.appName;
browser_version = navigator.appVersion;
const params = "user_id=" + UserId + '&href=' + user_href + '&browser=' + browser + '&browser_version=' + browser_version + '&type=exit';
request5.responseType = "json";
request5.open('POST', url, true);
request5.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request5.addEventListener("readystatechange", () => {
if (request5.readyState === 4 && request5.status === 200) {
let obj = request5.response;
console.log('ваш уход со страницы добавлен в базу: '+obj);
}
});
request5.send(params);
return false;
};
Но мне нужно делать это незаметно для пользователя безо всяких всплывающих окон. как это сделать?