Rumah > Artikel > hujung hadapan web > Mengapa Focus() Tidak Berfungsi dalam IE dan Bagaimana Saya Boleh Membetulkannya?
Fokus Tidak Berfungsi dalam IE: A Resolution
Dalam situasi di mana fungsi focus() gagal berfungsi dalam IE7, pendekatan alternatif diperlukan untuk meletakkan kursor dalam medan input.
Untuk menangani isu ini dalam IE, manfaatkan fungsi setTimeout kerana tingkah laku pelaksanaannya yang tertangguh. Laksanakan kod berikut:
<code class="javascript">setTimeout(function() { document.getElementById('myInput').focus(); }, 10);</code>
Kod ini memulakan kelewatan selama 10 milisaat sebelum melaksanakan fungsi fokus(), menampung respons tertunda IE.
Walau bagaimanapun, masalah mungkin berterusan dalam Opera. Pertimbangkan untuk meneroka penyelesaian yang berpotensi untuk menetapkan fokus dalam Opera.
Penyelesaian lanjutan, memenuhi situasi di mana elemen mungkin tidak tersedia, melibatkan mencuba semula dengan kelewatan yang singkat sehingga elemen itu boleh diakses. Ini memastikan keserasian dengan halaman dimuatkan perlahan atau elemen yang mengambil masa untuk dimuatkan. Laksanakan kod berikut:
<code class="javascript">setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;</code>
Kod ini menyediakan fungsi setTimeout rekursif yang menyemak ketersediaan elemen dan cuba memfokus padanya setiap 10 milisaat sehingga berjaya.
Atas ialah kandungan terperinci Mengapa Focus() Tidak Berfungsi dalam IE dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!