58 votes

Y a-t-il un événement de navigateur pour que la fenêtre se concentre ?

Y a-t-il un moyen d’exécuter une méthode une fois lorsque je clique sur mon navigateur et que je lui donne le focus? Et puis lorsque le navigateur perd le focus et récupère le focus pour exécuter à nouveau cette méthode une seule fois, encore une fois.

18voto

Brett Weber Points 775
$(document).ready(function() { $(window).one("focus", SomeFocusMethod); } );

var SomeFocusMethod = function()
{
    // do stuff
    $(window).one("blur", SomeBlurMethod);
}

var SomeBlurMethod = function() 
{ 
    // do stuff
    $(window).one("focus", SomeFocusMethod); 
}

10voto

Pylinux Points 605

Si vous ciblez des navigateurs plus récents qu’IE9, vous devez vraiment utiliser l’API de navigateur javascript « Page Visibility API »: https://developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API

1voto

prashantsahni Points 344
function blinkTab() {
    const browserTitle = document.title;

    const stopBlinking = () => {
        document.title = browserTitle;
    };

    const startBlinking = () => {
        document.title = 'My New Title';
    };

    function registerEvents() {
        window.addEventListener("focus", function(event) { 
            stopBlinking();
        }, false);

        window.addEventListener("blur", function(event) {
            setInterval(() => {
                startBlinking();
            }, 500);

        }, false);
    };

    registerEvents();
};


blinkTab();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X