Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie löst man das focus()-Problem in IE7 und anderen Browsern?

Susan Sarandon
Freigeben: 2024-11-01 03:37:28
Original
531 Leute haben es durchsucht

How to Solve the focus() Issue in IE7 and Other Browsers?

IE Focus()-Problem

In einigen Browsern, wie z. B. IE7, funktioniert die focus()-Methode für Eingabeelemente möglicherweise nicht wie erwartet . Dies kann dazu führen, dass der Cursor nicht innerhalb des Eingabefelds positioniert wird.

Lösung für IE

Um dieses Problem im IE zu beheben, kann eine setTimeout-Funktion zur Verzögerung verwendet werden der Fokusvorgang. Dadurch wird der IE gezwungen, die Änderung zu bestätigen und den Cursor korrekt zu positionieren. Hier ist ein Beispiel:

setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
Nach dem Login kopieren

Alternative Lösung

Wenn die setTimeout-Lösung in Opera nicht funktioniert, kann ein anderer Ansatz gewählt werden. Durch Auswahl des Elements nach ID, Verwendung der Methode cloneNode() und Ersetzen durch das geklonte Element wird der Fokus festgelegt.

Erweiterte Lösung für langsam ladende Seiten

In Fällen, in denen das Eingabeelement aufgrund langsam ladender Seiten oder spätem Rendern nicht verfügbar ist, ist eine robustere Lösung erforderlich. Der folgende Codeausschnitt wiederholt den Fokusvorgang nach einer kurzen Zeitspanne, bis das Element verfügbar wird:

setTimeout(

function( ) {

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

}

, 10 ) ;
Nach dem Login kopieren

Dieser Ansatz versucht weiterhin, den Fokus zu setzen, bis das Element im DOM vorhanden ist.

Das obige ist der detaillierte Inhalt vonWie löst man das focus()-Problem in IE7 und anderen Browsern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage