как узнать на вкладке ли пользователь? *(РЕШЕНО!)
Доброго времени суток, такой вопрос:
Как узнать, находится ли пользователь на данной странице, вкладке. Менять код самой странице нельзя при том, только через JS . пробую так: window.onblur = function () { document.title='документ неактивен'; } window.onfocus = function () { document.title='документ снова активен'; } onblur работает отлично, а onfocus активизируется только в том случае, если кликнуть по сайту. Пожалуйста, помогите в проблемкой. Всем ответившим + |
У меня вот так работает:
// Проверка активна ли в настоящий момент вкладка браузера var isActive = true; function onBlur() { // окно теряет фокус isActive = false; // что-то делаем } function onFocus() {// окно получает фокус isActive = true; // что-то делаем } if (/*@cc_on!@*/false) { // для Internet Explorer document.onfocusin = onFocus; document.onfocusout = onBlur; } else { window.onfocus = onFocus; window.onblur = onBlur; } |
И что? То же самое! Активируется только после клика
|
а некоторым сайтам и клика мало! Обязательно, чтобы с другой вкладки переключение было. А если напрямую перейти и лазить по сайту, то будет не активно!
Может как-то отследить движение мыши на поле сайта? (обязательно чтобы страницу сайта не меняя!) |
Цитата:
Цитата:
Код, который я привел, работает на реальном проекте уже более года. При получении вкладкой фокуса (без кликов по странице) скрипт отрабатывает своё дело (в моем случае - это чат - выключается звук сообщений и перемещается указатель последнего прочитанного сообщения) |
Есть же page visibility API, правда только в относительно новых браузерах.
|
Цитата:
Ветеран, толи я что-то не понимаю, но при открытии страницы запускается функция onBlur() и соответственно isActive = false; Далее я это использовать не могу |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Но теперь такая проблема: при открытии страницы в новой вкладке, время на ней начинает считаться. А этого быть не должно. Как отследить, что страница была открыта именно в новой вкладке и по факту её еще не открывали для просмотра? |
Часовой пояс GMT +3, время: 10:52. |