Событие, когда пользователь переключает вкладки браузера - PullRequest
25 голосов
/ 24 июня 2009

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

window.onblur и window.onfocus , похоже, работают неправильно во всех браузерах

Есть ли прокси, на который я мог бы посмотреть, чтобы синтезировать это событие?

Ответы [ 2 ]

35 голосов
/ 24 июня 2009

Вы можете попробовать использовать фреймворк, такой как MooTools или jQuery, который обеспечивает кросс-браузерную поддержку. Они должны иметь возможность с большей надежностью обнаруживать события blur и focus для окна браузера.

Лично я использовал JQuery с большим успехом:

$(window).blur(function(e) {
    // Do Blur Actions Here
});
$(window).focus(function(e) {
    // Do Focus Actions Here
});
18 голосов
/ 09 февраля 2017

Вы также можете попробовать VisibilityAPI .

document.addEventListener("visibilitychange", function() {
    if (document.hidden){
        console.log("Browser tab is hidden")
    } else {
        console.log("Browser tab is visible")
    }
});

См. Также здесь о переполнении стека (возможно дублирование)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...