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