Spec-Zone.ru › Web APIs

Окно: событие pagehide

Базовая линия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить обратную связь

Событие pagehide отправляется в Window, когда браузер скрывает текущую страницу в процессе отображения другой страницы из истории сессии.

Например, когда пользователь нажимает кнопку «Назад» в браузере, текущая страница получает событие pagehide перед отображением предыдущей страницы.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.

addEventListener("pagehide", (event) => {});
onpagehide = (event) => {};

Тип события

Объект PageTransitionEvent. Наследуется от Event.

Событие PageTransitionEvent

Свойства события

PageTransitionEvent.persisted Только для чтения

Указывает, загружается ли документ из кэша.

Псевдонимы обработчиков событий

В дополнение к интерфейсу Window свойство обработчика событий onpagehide также доступно для следующих целей:

  • HTMLBodyElement
  • HTMLFrameSetElement
  • SVGSVGElement

Примечания по использованию

Как и события unload и beforeunload, это событие не всегда надежно срабатывает в браузерах, особенно на мобильных устройствах. Например, событие pagehide вообще не срабатывает в следующем сценарии:

  1. Мобильный пользователь посещает вашу страницу.
  2. Затем пользователь переключается на другое приложение.
  3. Позже пользователь закрывает браузер из диспетчера приложений.

Однако, в отличие от событий unload и beforeunload , это событие совместимо с кэшем вперед/назад (bfcache), поэтому добавление слушателя к этому событию не помешает включению страницы в bfcache.

Лучшим событием для сигнализации о завершении сессии пользователя является событие visibilitychange. В браузерах, которые не поддерживают visibilitychange, событие pagehide является следующим по лучшим альтернативам.

Если вы пытаетесь специально обнаружить события закрытия страницы, событие pagehide — лучший вариант.

Для получения дополнительной информации о том, как это событие относится к другим событиям жизненного цикла страницы, см. руководство API жизненного цикла страницы.

Примеры

В этом примере обработчик событий устанавливается для отслеживания событий pagehide и выполнения специальной обработки, если страница сохраняется для возможного повторного использования.

window.addEventListener(
  "pagehide",
  (event) => {
    if (event.persisted) {
      /* the page isn't being discarded, so it can be reused later */
    }
  },
  false,
);

Это также можно записать, используя свойство обработчика событий onpagehide для Window:

window.onpagehide = (event) => {
  if (event.persisted) {
    /* the page isn't being discarded, so it can be reused later */
  }
};

Спецификации

Спецификация
HTML
# event-pagehide

Совместимость с браузерами

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
pagehide_event 3 12 6 15 5 18 6 14 4.2 1.0 ≤37

См. также

  • Событие pageshow.
  • API жизненного цикла страницы предоставляет рекомендации по обработке поведения жизненного цикла страницы в ваших веб-приложениях.
  • PageLifecycle.js: JavaScript библиотека, которая обрабатывает несовместимости между браузерами в поведении жизненного цикла страницы.
  • Кэш вперед/назад объясняет, что такое кэш вперед/назад и его последствия для различных событий жизненного цикла страницы.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API