Rumah >hujung hadapan web >tutorial js >Penyelesaian kepada kegagalan JavaScript untuk menggunakan fokus() untuk menetapkan petua focus_javascript

Penyelesaian kepada kegagalan JavaScript untuk menggunakan fokus() untuk menetapkan petua focus_javascript

WBOY
WBOYasal
2016-05-16 16:37:241998semak imbas

Semalam apabila saya mengubah suai halaman EPG pada set-top box, saya menghadapi masalah kecil. Apabila pengguna membeli permainan, kotak dialog pengesahan pembelian perlu muncul. Fokus lalai kotak dialog mesti kekal pada butang "Batal". Keperluan yang sangat mudah boleh dicapai menggunakan kaedah fokus() JavaScript. Contoh kod mudah adalah seperti berikut:

document.getElementById("cancel").focus()

Tetapi yang menyedihkan ialah kotak set-top itu benar-benar lubang besar. Memandangkan ia perlu serasi dengan semua model kotak atas set sedia ada, 8 kotak atas set perlu disesuaikan. Kemudian sesuatu yang tidak kena! Kotak set atas ZTE B600 tidak boleh menetapkan fokus kepada butang batal sama sekali. Berikut ialah penyelesaian saya:

Mula-mula sahkan sama ada kotak atas set menyokong kaedah getElementById() dan sama ada elemen dengan ID "batal" telah berjaya diperoleh: kaedah ujian adalah sangat mudah, cuma tulis 7260a49c8ccd930c667f562581bffb92test Akhirnya, "cuba...tangkap(e)..." digunakan untuk menangkap sebab mengapa "fokus()" gagal

try(){ 
<span style="white-space:pre"> </span>document.getElementById("cancel").focus() 
}catch(e){ 
<span style="white-space:pre"> </span>alert(e.name + ": " + e.what()); 
}

Tetapi ia pelik! Keputusan dua langkah di atas menunjukkan bahawa kotak set atas menyokong focus() dan getElementById(), tetapi fokus tidak boleh ditetapkan pada kotak dialog pop timbul.

Selepas berhempas-pulas selama lebih sejam, akhirnya BOSS besar itu muncul dan menyelesaikan masalah dengan hanya satu ayat! Anda boleh memanggil flur() secara aktif untuk membatalkan fokus asal!

document.getElementById("purchase").flur()

Kemudian masalah selesai. Saya perlu menghargainya! Dalam proses menyelesaikan masalah ini, idea saya sebenarnya agak betul, tetapi pengetahuan saya jelas tidak mencukupi. Jurang antara pengaturcara biasa dan pengaturcara kanan bukan sahaja dari segi idea untuk menyelesaikan masalah, tetapi juga dalam pengalaman dan pengetahuan!

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