Heim  >  Artikel  >  Web-Frontend  >  Wie löst man das focus()-Problem in IE7 und anderen Browsern?

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

Susan Sarandon
Susan SarandonOriginal
2024-11-01 03:37:28455Durchsuche

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);

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 ) ;

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!

Stellungnahme:
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