Как определить находится вкладка в фокусе или нет?

$(function(){
    
    $hasFocus = false;
    
    $('#clear').bind('click', function() { $('#event').empty(); });
    
    $(window)
        .bind('focus', function(ev){
            $hasFocus = true;
            $('#event').append('<div>'+(new Date()).getTime()+' focus</div>');
        })
        .bind('blur', function(ev){
            $hasFocus = false;
            $('#event').append('<div>'+(new Date()).getTime()+' blur</div>');
        })
        .trigger('focus');
    
    setInterval(function() {
        $('#event').append('<div>'+(new Date()).getTime()+' has focus '+($hasFocus ? 'yes' : 'no')+'</div>');
    }, 1000);
});

Код работает, за исключение того, когда мы открываем новую вкладку правой кнопкой мыши не переходя на неё, скрипт считает что вкладка в фокусе.
Как сделать так, что бы и в этом случае, скрипт считал вкладку не активной?
Демо
  • Вопрос задан
  • 481 просмотр
Решения вопроса 1
makklovskiy
@makklovskiy Автор вопроса
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Как вариант проверять наличие position: fixed в стилях. Ну или сделать проще, задать класс на фиксирование и уже делать условие исходя из наличия класса.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы