Окно: событие pagehide
Базовая линия Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна во всех браузерах с июля 2015 года.
Событие pagehide отправляется в Window, когда браузер скрывает текущую страницу в процессе отображения другой страницы из истории сессии.
Например, когда пользователь нажимает кнопку «Назад» в браузере, текущая страница получает событие pagehide перед отображением предыдущей страницы.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.
addEventListener("pagehide", (event) => {});
onpagehide = (event) => {};
Тип события
Объект PageTransitionEvent. Наследуется от Event.
Свойства события
-
PageTransitionEvent.persistedТолько для чтения -
Указывает, загружается ли документ из кэша.
Псевдонимы обработчиков событий
В дополнение к интерфейсу Window свойство обработчика событий onpagehide также доступно для следующих целей:
Примечания по использованию
Как и события unload и beforeunload, это событие не всегда надежно срабатывает в браузерах, особенно на мобильных устройствах. Например, событие pagehide вообще не срабатывает в следующем сценарии:
- Мобильный пользователь посещает вашу страницу.
- Затем пользователь переключается на другое приложение.
- Позже пользователь закрывает браузер из диспетчера приложений.
Однако, в отличие от событий 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