Problem mit dem FOCUS-Eingabefeld in IE und Opera
Problem:
Der folgende Code schlägt fehl um das geklonte Eingabefeld in Internet Explorer 7 zu fokussieren:
function change() { var input = document.getElementById('pas'); var input2 = input.cloneNode(false); input2.type = 'password'; input.parentNode.replaceChild(input2, input); input2.focus(); }
Lösung für IE:
Internet Explorer ist bekanntermaßen „faul“, wenn es um das Fokussieren von Elementen geht. Um dieses Problem zu beheben, können Sie eine setTimeout-Funktion verwenden:
setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
Lösung für Opera:
In Opera können Probleme beim Festlegen des Fokus auf erstellte Elemente auftreten dynamisch oder nach dem Laden der Seite angezeigt. Mögliche Lösungen finden Sie in den folgenden Ressourcen:
Erweiterte Lösung:
Um Fälle zu behandeln, in denen das Element möglicherweise nicht verfügbar ist Ab sofort können Sie das folgende Snippet verwenden:
setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;
Dieser Code versucht alle 10 Millisekunden erneut, das Element zu fokussieren, bis es verfügbar wird, um potenzielle Probleme mit langsamem Laden oder verzögerter Elementerscheinung zu beheben.
Das obige ist der detaillierte Inhalt vonWie fokussiere ich ein geklontes Eingabefeld in IE und Opera?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!