Как определить активное окно/вкладку?
Вопрос собственно в том, как определить активное окно/вкладку браузера?
Поясню зачем нужно, возможно вы предложите как сделать по другому: Есть web-страница, которая раз в 10 секунд опрашивает сервер на предмет наступления определенного события. Если событие наступило - об этом надо сообщить пользователю (показать сообщение и сразу его скрыть) и удалить информацию о нем (о событии) с сервера. Все это реализовано. Но проблема в том, что у пользователя эта web-страница может быть открыта неоднократно (в разных вкладках или окнах браузера). И каждая такая страница будет опрашивать сервер. И та, которая опросит первой после наступления события - та его и отобразит. А надо, чтобы отображала только та на которую смотрит пользователь. Т.е. активная. Как ее вычислить? |
не давать открывать пользователю больше одной страницы с данного сайта одновременно.
|
:)))
Жестоко. ИМХО, самое глупое решение. |
Отлавливать focus/blur у каждой страницы. На той, у которой был последний focus -- отображать. blur, пожалуй, можно даже не отлавливать.
|
Цитата:
Вот за это спасибо. Я сделал див на всю страницу (самый внешний) и для него сделал: <div onmouseover="focusHere();" onmouseout="focusOut();"> В обработчиках устанавливаю и снимаю соответствующий флаг, который проверяю перед обращением к серверу. Просто и эффективно. Спасибо. |
Цитата:
$(window).blur(function() { // Здесь что угодно после ухода в другую вкладку }); $(window).focus(function() { // Здесь что угодно после возвращения во вкладку }); |
Часовой пояс GMT +3, время: 13:28. |