Показать сообщение отдельно
  #1 (permalink)  
Старый 13.12.2019, 10:33
Аспирант
Отправить личное сообщение для raja Посмотреть профиль Найти все сообщения от raja
 
Регистрация: 22.09.2016
Сообщений: 40

Какой универсальный способ фиксировать в БД факт покидания пользователем страницы?
если в конце функции возвращать 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;
        };

Но мне нужно делать это незаметно для пользователя безо всяких всплывающих окон. как это сделать?
Ответить с цитированием