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
Lepaskan: 2016-05-16 16:37:24
asal
2010 orang telah melayarinya

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()
Salin selepas log masuk

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

test 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()); 
}
Salin selepas log masuk

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()
Salin selepas log masuk

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!

Label berkaitan:
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