Rumah > hujung hadapan web > tutorial css > Bagaimana untuk Tetapkan Fokus pada Elemen Input dalam Penyemak Imbas Berbeza?

Bagaimana untuk Tetapkan Fokus pada Elemen Input dalam Penyemak Imbas Berbeza?

DDD
Lepaskan: 2024-11-01 07:00:30
asal
315 orang telah melayarinya

How to Reliably Set Focus on Input Elements in Different Browsers?

IE dan Masalah Acara Fokus

Acara fokus() boleh menjadi tidak boleh dipercayai dalam Internet Explorer. Apabila cuba untuk menetapkan fokus kursor pada elemen input menggunakan fungsi berikut:

function change() {
  var input = document.getElementById('pas');
  var input2 = input.cloneNode(false);
  input2.type = 'password';
  input.parentNode.replaceChild(input2, input);
  input2.focus();
}
Salin selepas log masuk

IE7 tidak akan bertindak balas kepada panggilan fokus(), meninggalkan kursor di luar elemen input. Untuk membetulkan isu ini dalam IE, gunakan fungsi setTimeout:

setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
Salin selepas log masuk

Opera Woes

Walau bagaimanapun, menggunakan penyelesaian ini memperkenalkan masalah baharu dalam Opera. Untuk menangani perkara ini, rujuk sumber seperti "Cara menetapkan fokus dalam indeks yang diperlukan pada kotak teks untuk Opera."

Penyelesaian Universal

Untuk memastikan keserasian merentas semua penyemak imbas, masukkan coretan kod yang mengendalikan senario di mana elemen input tidak tersedia serta-merta:

setTimeout(

  function( ) {

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

  }

, 10 ) ;
Salin selepas log masuk

Ini coretan mencuba semula memfokus setiap 10 milisaat sehingga elemen tersedia, menyelesaikan isu untuk kedua-dua halaman yang dimuatkan dengan perlahan dan ketersediaan elemen tertangguh.

Atas ialah kandungan terperinci Bagaimana untuk Tetapkan Fokus pada Elemen Input dalam Penyemak Imbas Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan