Лучший способ определить, когда пользователь покидает веб-страницу?


195

Как лучше всего определить, покидает ли пользователь веб-страницу?

onunloadСобытие JavaScript не работает каждый раз , когда (запрос HTTP занимает больше времени , чем время , необходимое для завершения браузер).

Возможно, его создание будет заблокировано текущими браузерами.

Ответы:


219

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

Кроме того, вы можете отправить запрос Ajax, когда он уходит.


3
Было бы хорошо для пользователя, если бы вы отслеживали, изменилась ли форма, и только запрашивали, если это изменилось - так что это не раздражает.
adam0101

3
Также обратите внимание, что различные мобильные браузеры игнорируют результат события (то есть они не запрашивают у пользователя подтверждения). Firefox имеет скрытое предпочтение в about: config, чтобы сделать то же самое. По сути это означает, что пользователь всегда подтверждает, что документ может быть выгружен.
MJB

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

@ Андреас Петерссон, у меня та же проблема с целью пропустить сеанс пользователя. Как я могу получить введенный URL-адрес, чтобы проверить, принадлежит ли он проекту?
Jcc.Sanabria
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.