Maison >interface Web >tutoriel CSS >Comment concentrer un champ de saisie cloné dans IE et Opera ?

Comment concentrer un champ de saisie cloné dans IE et Opera ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 13:23:01465parcourir

How to Focus a Cloned Input Field in IE and Opera?

Problème de champ de saisie FOCUS dans IE et Opera

Problème :

Le code ci-dessous échoue pour focaliser le champ de saisie cloné dans Internet Explorer 7 :

function change() {
    var input = document.getElementById('pas');
    var input2 = input.cloneNode(false);
    input2.type = 'password';
    input.parentNode.replaceChild(input2, input);
    input2.focus();
}

Solution pour IE :

Internet Explorer est notoirement « paresseux » lorsqu'il s'agit de focaliser les éléments. Pour résoudre ce problème, vous pouvez utiliser une fonction setTimeout :

setTimeout(function() { document.getElementById('myInput').focus(); }, 10);

Solution pour Opera :

Dans Opera, vous pouvez rencontrer des problèmes pour définir le focus sur les éléments créés dynamiquement ou apparaître après le chargement de la page. Reportez-vous aux ressources suivantes pour connaître les solutions potentielles :

  • [Comment définir le focus dans l'index requis sur la zone de texte pour Opera](https://stackoverflow.com/questions/2099366/how-to-set- focus-in-required-index-on-textbox-for-opera)

Solution améliorée :

Pour gérer les cas où l'élément peut ne pas être disponible immédiatement, vous pouvez utiliser l'extrait suivant :

setTimeout(

    function( ) {

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

    }

, 10 ) ;

Ce code tente de focaliser l'élément toutes les 10 millisecondes jusqu'à ce qu'il devienne disponible, résolvant ainsi les problèmes potentiels de chargement lent ou d'apparition retardée de l'élément.

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