Penampil tombol dan event JavaScript

Tekan tombol: event.key, event.code, keyCode, modifier, IME, plus event pointer.

Events are read only while this field has focus. Turn blocking off to type into it (for IME tests).

Tab and Shift+Tab always move focus, and nothing is blocked while an input method (IME) is composing.

Last keydown

Press a key

JavaScript for this shortcut

Match by

Follows the user's layout: right for shortcuts named after a letter or symbol (Ctrl+Z, ?).

—

Event history

Events appear here as you type in the field.

Apa yang dilakukan

Klik kolom penangkap lalu tekan tombol: untuk setiap keydown Anda melihat event.key, event.code, keyCode dan which (usang), location, tombol modifier, apakah tombol berulang, apakah IME sedang menyusun teks, dan Caps Lock. Riwayat mencatat keydown, keyup, keypress, composition dan beforeinput secara berurutan, dan alat ini menulis handler JavaScript untuk kombinasi yang ditekan. Tab lain memeriksa event mouse, roda gulir, sentuhan dan pointer: tombol, koordinat, jenis pointer, tekanan, kemiringan pena dan delta gulir.

key, code dan keyCode

key adalah hasil tombol dengan tata letak saat ini ("a", "?", "Enter"); code adalah tombol fisik menurut posisinya di QWERTY Amerika ("KeyA"); keyCode dan which sudah usang dan bernilai 229 selama komposisi IME. Gunakan key untuk pintasan yang dinamai menurut karakter dan code untuk posisi, seperti WASD dalam game.

Tidak menjebak keyboard

Pemblokiran pintasan hanya berlaku saat kolom memiliki fokus, dapat dimatikan, dan Tab serta Shift+Tab tidak pernah diblokir, sehingga Anda selalu bisa berpindah dengan keyboard. Tidak ada yang diblokir saat IME sedang menyusun teks. Beberapa kombinasi, seperti Alt+Tab, tidak pernah sampai ke halaman web.

Pertanyaan yang sering diajukan

Apa beda event.key dan event.code?

key adalah karakter yang dihasilkan dengan tata letak saat ini; code adalah posisi fisik tombol.

Haruskah saya memakai keyCode?

Tidak, sudah usang dan nilainya berbeda antar browser dan tata letak.

Mengapa pintasan saya terpicu saat mengetik dengan IME?

Karena handler tidak memeriksa event.isComposing; hentikan lebih awal saat bernilai true.