414 votes

Comment savoir si le navigateur/onglet est actif

Double Possible:
Est-il un moyen de détecter si une fenêtre de navigateur n'est actuellement pas actif?

J'ai une fonction qui est appelée à chaque seconde que je ne veux l'exécuter, si la page est dans le premier plan, c'est à dire que l'utilisateur n'a pas minimisé le navigateur ou la tension à un autre onglet. Il ne sert à rien si l'utilisateur n'est pas le regarder et est potentiellement CPU-intensive, donc je ne veux pas simplement des déchets cycles en arrière-plan.

Personne ne sait comment le dire en JavaScript?

Remarque: j'utilise jQuery, donc si votre réponse utilise, c'est très bien :).

451voto

gearsdigital Points 4760

En plus de Richard Simões de réponse, vous pouvez également utiliser la Page de la Visibilité de l'API.

Cette spécification définit un moyen pour les développeurs de site de déterminer par programme de l'actuel état de visibilité de la page afin de développer la puissance et la CPU efficace des applications web.

En savoir plus

Exemple

376voto

Richard Simões Points 4981

Vous devez utiliser le et des événements de la fenêtre :


Pour répondre à la question a commenté « Doubles activations » et rester dans jQuery facilité d’utilisation :

167voto

CMS Points 315406

Je voudrais essayer de définir un indicateur sur le et des événements.

L’extrait de code suivant a été testé sur Firefox, Safari et Chrome, ouvrez la console et se déplacer entre les onglets en arrière :

Essayez-le ici.

20voto

Chris Fulstow Points 19762

À l’aide de jQuery :

9voto

rockacola Points 3973

Si vous essayez de faire quelque chose de similaire à google moteur de recherche lorsqu’elle est ouverte en Chrome où certains événements sont déclenchés lorsque vous vous concentrez sur la page, essayez si hover() événement répond à vos besoins.

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