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( "myInput" ) ; ( 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!