Я экспериментирую с событием beforeunload
. Вот пример прямо из MDN:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<script>
window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';
});
</script>
<body></body>
</html>
После нажатия клавиши F5 (или закрытия вкладки / браузера) браузер должен спросить, действительно ли я хочу покинуть страницу до того, как страница действительно закроется.
И это так. Но это происходит только после некоторого взаимодействия с веб-страницей до , например, нажатие клавиши F5. Под взаимодействием я подразумеваю, например, щелчок в любом месте окна или нажатие любой клавиши на клавиатуре.
Если я нажму F5 сразу после загрузки страницы без нажатия или нажатия какой-либо клавиши, страница закроется без запроса браузера.
Может кто-нибудь объяснить это?
РЕДАКТИРОВАТЬ: Это было проверено с Firefox, Chrome и Edge.