Есть ли способ отследить фокус на вкладке с помощью Javascript? - PullRequest
9 голосов
/ 06 сентября 2010
  • Нам нужно отслеживать ЭФФЕКТИВНОЕ время на сайте наших пользователей
  • Большинство пользователей, когда они закончили, оставляют открытую вкладку и переходят на другую вкладку
  • Время включеносайт это очень неточно

Есть ли событие Javascript для отслеживания "потери фокуса" текущей вкладки?

Ответы [ 3 ]

12 голосов
/ 06 сентября 2010

Это должно работать как на переключателе вкладок, так и на окне браузера, теряющем фокус:

function onBlur() {
    document.body.className = 'blurred';
};
function onFocus(){
    document.body.className = 'focused';
};

if (/*@cc_on!@*/false) { // check for Internet Explorer
    document.onfocusin = onFocus;
    document.onfocusout = onBlur;
} else {
    window.onfocus = onFocus;
    window.onblur = onBlur;
}
1 голос
/ 15 сентября 2010

О какой вкладке вы говорите?Это ваша вкладка Nav / меню или вкладка Browser.Я чувствую, вы имеете в виду вкладку браузера!Я думаю, что это не возможно точно.Но что делать, если вы отслеживаете несколько событий, таких как перемещение мыши, фокус и т. Д., А затем запускаете событие, содержащее те же данные (счетчик) на сервере.Когда пользователь находится на вашей странице, он будет что-то делать, например, перемещать мышь, щелкать куда-то и т. Д. Таким образом, разница в загрузке первой страницы и последнем событии может определить статистику использования.

1 голос
/ 10 сентября 2010

Я бы что-нибудь сделал с mousemove и scroll и посчитал бы посетителя таким же активным, как и любой из этих триггеров в течение некоторого интервала. Это также покроет их, оставив браузер открытым и оставив компьютер.

...