Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa `fokus()` tidak berfungsi dalam Internet Explorer dan Opera?

Mengapa `fokus()` tidak berfungsi dalam Internet Explorer dan Opera?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 09:29:30993semak imbas

Why Doesn't `focus()` Work in Internet Explorer and Opera?

Memfokuskan Medan Input dalam Internet Explorer dan Opera

Apabila menggunakan kaedah fokus() dalam JavaScript, beberapa isu mungkin timbul dalam penyemak imbas tertentu. Soalan ini menyerlahkan masalah di mana focus() tidak berfungsi dalam Internet Explorer 7, meninggalkan kursor di luar medan input yang dikehendaki.

Penyelesaian untuk Internet Explorer:

Dalam Internet Explorer, focus() memerlukan perhatian tambahan kerana sifat malasnya. Untuk menyelesaikan isu ini, gunakan fungsi setTimeout(). Contohnya:

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

Penyelesaian untuk Opera:

Untuk Opera, pertimbangkan untuk meneroka penyelesaian yang berkaitan dengan menetapkan fokus dalam indeks yang diperlukan pada kotak teks.

Peningkatan Pengendalian untuk Ketersediaan Elemen Tertunda:

Dalam sesetengah kes, elemen mungkin tidak tersedia serta-merta, mengakibatkan medan input tidak fokus. Untuk menangani perkara ini, kod yang dipertingkatkan berikut mencuba semula fokus selepas selang masa yang singkat:

setTimeout(

function( ) {

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

}

, 10 ) ;

Atas ialah kandungan terperinci Mengapa `fokus()` tidak berfungsi dalam Internet Explorer dan Opera?. 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