Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/05/2011, à 22:09

luigifab

[JavaScript] Problème de focus FF3/FF4

Bonsoir

J'ai un petit problème avec la gestion du focus entre Firefox 3 et Firefox 4.

Sur Firefox 3, la ligne de code suivante donne bien le focus sur mon champ de formulaire de type file (input type file).
Sur Firefox 4, cela ne fonctionne plus.

document.getElementById('box').getElementsByTagName('input')[0].focus();

Moi pas bien comprendre... le pourquoi du comment.

Dernière modification par luigifab (Le 12/02/2014, à 22:51)


Free Ukraine!

Hors ligne

#2 Le 05/05/2011, à 08:19

Lumin0u

Re : [JavaScript] Problème de focus FF3/FF4

ce thread peut t'aider? c'est sur une ancienne version de firefox qui est censée fonctionner pour toi, mais ça a l'air d'être le même problème.

Hors ligne

#3 Le 05/05/2011, à 19:37

luigifab

Re : [JavaScript] Problème de focus FF3/FF4

Effectivement ce lien donne une réponse à mon problème.
En utilisant un Timeout, le focus est bien donné au champ du formulaire.

window.setTimeout(function () { document.getElementById('box').getElementsByTagName('input')[0].focus(); }, 0);

La question est, pourquoi ?
Pourquoi cette nouveauté à deux balles ? À moins que ce soit moi...


Free Ukraine!

Hors ligne

#4 Le 06/05/2011, à 11:42

Uda

Re : [JavaScript] Problème de focus FF3/FF4

Salut,

Je dirais que cela doit dépendre de l'endroit ou tu appelles ton code.
Il est probable que tu es dans un événement qui va lui même générer un changement de focus après.
Du coup, il y a un changement de focus qui est exécuter juste après ton code et qui annule son effet.
Le fait de passer par un timer t'assure que les éventements en cours soient traités avant que ton code ne s'exécute.

La gestion du focus ou la gestion de la pile d'événement a probablement changé entre FF3 / FF4.
Et, je pense qu'il y a pas de garantie que cela fonctionne de la même façon entre les différent navigateur.
Alors qu'avec un timeout cela devrait toujours fonctionner.

Cordialement,
  Uda

Hors ligne

#5 Le 11/05/2011, à 22:17

luigifab

Re : [JavaScript] Problème de focus FF3/FF4

Je vois ce que tu veux dire.

Voici le déroulement de mon code :
- clic de l'utilisateur sur un bouton,
- le bouton prend le focus,
- lancement de ma fonction JavaScript qui ajoute du code HTML au document,
- toujours dans cette même fonction, définition du focus sur le champ fichier précédemment créé,
- suppression d'un éventuel focus sur le bouton initial.

Je vais essayer de faire quelques tests avec une page HTML simple.
Mais ce sera pour demain...


Free Ukraine!

Hors ligne