207 votes

Détecter si l’onglet navigateur a le Focus

Existe-t-il un moyen fiable de la croix-navigateur pour détecter qu’un onglet a le focus.

Le scénario est que nous avons une application qui interroge régulièrement pour le cours des actions et si la page n’est pas mise au point nous ne pouvions arrêter les modalités du scrutin et enregistrer tout le monde le bruit de la circulation, autant que les gens sont fans d’ouvrir plusieurs onglets avec différents portefeuilles.

Est et une option pour cela ?

162voto

Ryan Wright Points 1261

Oui, et devrait fonctionner pour votre scénario :

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

77voto

Zirak Points 13656

Important Edit: Cette réponse est obsolète. Depuis la rédaction de elle, la Visibilité de l'API (mdn, exemple, spec) a été introduit. C'est la meilleure façon de résoudre ce problème.


var focused = true;

window.onfocus = function() {
    focused = true;
};
window.onblur = function() {
    focused = false;
};

Autant que je sache, focus et blur sont tous pris en charge sur...de tout. (voir http://www.quirksmode.org/dom/events/index.html )

67voto

Ilija Points 518

En cherchant sur ce problème, j’ai trouvé une recommandation que Page visibilité API doit être utilisée. Plupart des navigateurs modernes prennent en charge cette API selon Can j’ai utiliser : http://caniuse.com/#feat=pagevisibility.

Voici un exemple de travail (dérivé de cet extrait) :

29voto

Brian Glaz Points 5833

Oui, ceux qui doivent travailler pour vous. Vous me rappelait juste ce lien techniques que je suis tombé qui exploite ces techniques. lecture intéressante

8voto

confile Points 1480

Je voudrais faire de cette façon (référence http://www.w3.org/TR/page-visibility/) :

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