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!