Определить, активна ли вкладка браузера?- IE? - PullRequest
5 голосов
/ 08 августа 2011

Я посмотрел на это:

Как узнать, активен ли браузер / вкладка

и:

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

Первая ссылка предоставляет решение для современных браузеров, но не работает в IE7 / 8.Оба эти вопроса довольно старые.Есть ли решение проблемы определения, просматривает ли посетитель свою открытую вкладку или нет?

Практически все, что я пробовал, прекрасно работает в Chrome.Но IE7 просто терпит неудачу.

Я просто хочу установить глобальную переменную, которая сообщает, просматривается ли страница.

то есть

var isActive = true;

$(window).focus(function() {
    isActive = true;
});

$(window).blur(function() {
    isActive = false;
});

// test
setInterval(function () {
  console.log(window.isActive ? 'active' : 'inactive'); 
}, 1000);

Ответы [ 2 ]

7 голосов
/ 08 августа 2011

После долгих поисков ... потом еще ... потом еще ... Спустя 4 часа или около того В конце концов я нашел эту ссылку скрытой в недрах интернета.Комментарии предполагают, что существует небольшая ошибка, но она подходит для того, для чего она мне нужна.

http://www.thefutureoftheweb.com/blog/detect-browser-window-focus

var isActive = true;
function onBlur() {
    isActive = false;
};
function onFocus(){
    isActive = true;
};

if (/*@cc_on!@*/false) { // check for Internet Explorer
    document.onfocusin = onFocus;
    document.onfocusout = onBlur;
} else {
    window.onfocus = onFocus;
    window.onblur = onBlur;
}
1 голос
/ 08 августа 2011

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

...