232 votes

Comment effacer le focus en javascript?

Je sais que cela ne devrait pas être si difficile, mais je n'ai pas trouvé de réponse sur Google.

Je veux exécuter un morceau de javascript qui effacera le focus de l’élément sur lequel il est placé sans savoir à l’avance sur quel élément se trouve le focus. Il doit fonctionner sur Firefox 2 ainsi que sur des navigateurs plus modernes.

Y at-il un bon moyen de le faire?

254voto

jps Points 4120

Réponse: document.activeElement

---modifier----

Techniquement: document.activeElement.blur()

---- modifier 2 ----

 function onElementFocused(e)
{
    if (e && e.target)
        document.activeElement = 
        e.target == document ? null : e.target;
} 

if (document.addEventListener) 
    document.addEventListener("focus", onElementFocused, true);
 

96voto

Kevin Reid Points 8806

.focus() puis .blur() autre chose d'arbitraire sur votre page. Comme un seul élément peut avoir le focus, il est transféré sur cet élément puis supprimé.

64voto

pwnzor1337 Points 51
 document.activeElement.blur();
 

Fonctionne mal sur IE9 - la fenêtre entière du navigateur s'estompe si l'élément actif est le corps du document. Mieux vaut vérifier pour ce cas:

 if (document.activeElement != document.body) document.activeElement.blur();
 

2voto

plodder Points 1307

dummyElem.focus () où dummyElem est un objet caché (par exemple, a un index négatif zIndex)?

0voto

Jonathan Points 3958

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