как узнать на вкладке ли пользователь? *(РЕШЕНО!)
Доброго времени суток, такой вопрос:
Как узнать, находится ли пользователь на данной странице, вкладке. Менять код самой странице нельзя при том, только через 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, время: 07:30. |