Maison  >  Article  >  interface Web  >  Pourquoi Focus() ne fonctionne-t-il pas dans IE et comment puis-je y remédier ?

Pourquoi Focus() ne fonctionne-t-il pas dans IE et comment puis-je y remédier ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 06:41:02662parcourir

Why Doesn't Focus() Work in IE and How Can I Fix It?

Focus ne fonctionne pas dans IE : une résolution

Dans une situation où la fonction focus() ne fonctionne pas dans IE7, un une approche alternative est nécessaire pour positionner le curseur dans le champ de saisie.

Pour résoudre ce problème dans IE, exploitez la fonction setTimeout en raison de son comportement d'exécution retardé. Implémentez le code suivant :

<code class="javascript">setTimeout(function() { document.getElementById('myInput').focus(); }, 10);</code>

Ce code initie un délai de 10 millisecondes avant l'exécution de la fonction focus(), pour tenir compte de la réponse retardée d'IE.

Cependant, le problème peut persister dans Opera. Envisagez d'explorer des solutions potentielles pour définir le focus dans Opera.

Une solution avancée, adaptée aux situations où l'élément peut ne pas être facilement disponible, consiste à réessayer avec un court délai jusqu'à ce que l'élément devienne accessible. Cela garantit la compatibilité avec les pages à chargement lent ou les éléments qui prennent du temps à se charger. Implémentez le code suivant :

<code class="javascript">setTimeout(

function( ) {

    var el = document.getElementById( &quot;myInput&quot; ) ;
    ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ;

}

, 10 ) ;</code>

Ce code configure une fonction récursive setTimeout qui vérifie la disponibilité de l'élément et tente de se concentrer dessus toutes les 10 millisecondes jusqu'à ce qu'elle réussisse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn