Heim > Artikel > Web-Frontend > Warum funktioniert Focus() im IE nicht und wie kann ich das Problem beheben?
Fokus funktioniert nicht im IE: Eine Lösung
In einer Situation, in der die Funktion focus() in IE7 nicht funktioniert, wird ein Ein alternativer Ansatz ist erforderlich, um den Cursor innerhalb des Eingabefelds zu positionieren.
Um dieses Problem im IE zu beheben, nutzen Sie die Funktion setTimeout aufgrund ihres verzögerten Ausführungsverhaltens. Implementieren Sie den folgenden Code:
<code class="javascript">setTimeout(function() { document.getElementById('myInput').focus(); }, 10);</code>
Dieser Code leitet eine Verzögerung von 10 Millisekunden ein, bevor die Funktion focus() ausgeführt wird, um der verzögerten Antwort des IE Rechnung zu tragen.
Das Problem kann jedoch in Opera weiterhin bestehen. Erwägen Sie die Erkundung möglicher Lösungen zum Festlegen des Fokus in Opera.
Eine erweiterte Lösung, die auf Situationen zugeschnitten ist, in denen das Element möglicherweise nicht ohne weiteres verfügbar ist, besteht darin, es mit einer kurzen Verzögerung erneut zu versuchen, bis das Element zugänglich wird. Dies stellt die Kompatibilität mit langsam ladenden Seiten oder Elementen sicher, deren Laden einige Zeit in Anspruch nimmt. Implementieren Sie den folgenden Code:
<code class="javascript">setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;</code>
Dieser Code richtet eine rekursive setTimeout-Funktion ein, die die Verfügbarkeit des Elements prüft und alle 10 Millisekunden versucht, sich darauf zu konzentrieren, bis dies erfolgreich ist.
Das obige ist der detaillierte Inhalt vonWarum funktioniert Focus() im IE nicht und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!