Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menyelesaikan Isu fokus() dalam IE7 dan Pelayar Lain?

Bagaimana untuk Menyelesaikan Isu fokus() dalam IE7 dan Pelayar Lain?

Susan Sarandon
Susan Sarandonasal
2024-11-01 03:37:28535semak imbas

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

IE Focus() Issue

Dalam sesetengah penyemak imbas, seperti IE7, kaedah focus() pada elemen input mungkin tidak berfungsi seperti yang diharapkan . Ini boleh menyebabkan kursor tidak diletakkan di dalam medan input.

Penyelesaian untuk IE

Untuk menyelesaikan isu ini dalam IE, fungsi setTimeout boleh digunakan untuk melengahkan operasi fokus. Ini memaksa IE untuk mengakui perubahan dan meletakkan kursor dengan betul. Berikut ialah contoh:

setTimeout(function() { document.getElementById('myInput').focus(); }, 10);

Penyelesaian Alternatif

Jika penyelesaian setTimeout tidak berfungsi dalam Opera, pendekatan lain boleh diambil. Dengan memilih elemen mengikut ID, menggunakan kaedah cloneNode() dan menggantikannya dengan elemen klon, fokus akan ditetapkan.

Penyelesaian Dikembangkan untuk Halaman Pemuatan Lambat

Dalam kes di mana elemen input tidak tersedia kerana halaman dimuatkan perlahan atau pemaparan lewat, penyelesaian yang lebih mantap diperlukan. Coretan kod berikut mencuba semula operasi fokus selepas selang masa yang singkat sehingga elemen tersedia:

setTimeout(

function( ) {

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

}

, 10 ) ;

Pendekatan ini terus mencuba untuk menetapkan fokus sehingga elemen hadir dalam DOM.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Isu fokus() dalam IE7 dan Pelayar Lain?. 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