Я пытаюсь создать всплывающее окно для выхода для опроса выхода для сайта, над которым я работаю.
Самое распространенное решение, с которым я столкнулся, это перехватить событие onunload страницы и добавить обработчик событий ко всем событиям щелчка ссылки, чтобы заблокировать всплывающее окно.
пример: http://www.pgrs.net/2008/1/30/popup-when-leaving-website
У этого подхода есть пара проблем:
Во-первых, вы не сможете обнаружить такие события, как обновление страницы или изменение URL-адреса вручную, поскольку это событие браузера, а не событие страницы.
Во-вторых, если у пользователя есть несколько открытых вкладок и одна из них закрывается, невозможно сказать, что пользователь все еще находится на сайте. Даже если мы используем файлы cookie для отслеживания количества открытых окон, мы не будем знать, действительно ли пользователь покидает веб-сайт или просто переходит по внутренней ссылке.
Мне кажется, что лучшее решение, которое я мог бы реализовать, - это комбинация переопределения всех событий и отслеживания открытых окон в куки, но мне интересно, если кто-нибудь придумал лучший метод.