petushok55
@petushok55
Обучаюсь на практике.

Можно ли отследить отмену загрузки страницы на жабаскрипт?

Суть такова: есть кнопка перехода на другую страницу сайта.
Пользователь нажимает на неё, у него начинает загружаться новая страница,
а на старой странице в этот момент отображается, допустим, гифка анимации,
и вот пользователь решил отменить переход на другую страницу (нажал крестик в браузере),
то как ему на странице убрать анимацию загрузки?

Можно, конечно через setTimeout через несколько секунд отменить загрузку, но кто знает, сколько страница загружаться будет
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
dedalik
@dedalik
Веб разработчик
Можно отследить, что пользователь закрыл окно браузера и в промежутке перед закрытием выполнить скрипт
https://developer.mozilla.org/ru/docs/Web/API/Wind...

window.addEventListener("beforeunload", function(event) { 
// страница браузера закрывается
});

В вашем случае ещё можно использовать Document.visibilityState, в тот момент, когда пользователь возвращается на страницу с гифкой отключаем гифку
https://developer.mozilla.org/en-US/docs/Web/API/D...

let wasHidden = false;

const onVisibilityChange = () => {
  if (wasHidden && document.visibilityState === 'visible') {
    // Тут убираем гифку
  }
  if ( document.visibilityState === 'hidden' ) {
    wasHidden = true;
  }
};

document.addEventListener('visibilitychange', onVisibilityChange);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы