Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Focus() Tidak Berfungsi dalam IE dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Focus() Tidak Berfungsi dalam IE dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 06:41:02662semak imbas

Why Doesn't Focus() Work in IE and How Can I Fix It?

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( &quot;myInput&quot; ) ;
    ( 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn