Événement du navigateur pour window.focus ()

Existe-t-il une façon de faire un clic lorsque je clique sur mon navigateur et de lui donner l'accent, pour exécuter une méthode une fois? Et puis, lorsque le navigateur perd de la mise au point, puis réinitialisez-le pour exécuter cette méthode une seule fois, encore une fois.

Merci,

barre.

Vous pouvez attacher les gestionnaires d'événements focus et blur sur l'objet window pour suivre si la fenêtre obtient ou perd la mise au point (voir http://jsfiddle.net/whQFz/ pour un exemple trivial). window s'applique au contexte actuel du navigateur (de sorte que cela pourrait être une fenêtre, un onglet, un cadre, etc.).

Notez cependant que l'événement de focus au focus disparaîtra chaque fois que la fenêtre sera mise au point et que l'événement blur s'éteindra chaque fois qu'il perd son focus. Un exemple de ce qui se distingue de la fenêtre est une alert (alors si vous essayez d'alerter sur un onfocus événements onfocus , vous obtiendrez une boucle infinie d'alertes!)

 $(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); } 

Si vous ciblez les navigateurs plus récents que IE9, vous devriez vraiment utiliser le navigateur javascript «Page Visibility API» api: https://developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API