Selain itu, semua keyCode , yaitu , charCode , dan keyIdentifier sudah tidak digunakan lagi:
charCode
dan keyIdentifier
merupakan fitur non-standar.
keyIdentifier
dihapus pada Chrome 54 dan Opera 41.0 menampilkan
keyCode
0, saat tombol ditekan dengan karakter normal di FF.
Properti kunci :
readonly attribute DOMString key
Menyimpan nilai atribut kunci yang sesuai dengan tombol yang ditekan
Pada saat penulisan ini, key
properti ini didukung oleh semua browser utama seperti: Firefox 52, Chrome 55, Safari 10.1, Opera 46. Kecuali Internet Explorer 11 yang memiliki:
pengidentifikasi kunci non-standar dan perilaku yang salah dengan AltGraph. Info lebih lanjut
Jika itu penting dan / atau kompatibilitas ke belakang, maka Anda dapat menggunakan fitur deteksi seperti pada kode berikut:
Perhatikan bahwa key
nilainya berbeda dari keyCode
or which
properties karena: ini berisi nama kunci bukan kodenya. Jika program Anda membutuhkan kode karakter, maka Anda dapat memanfaatkan charCodeAt()
. Untuk karakter tunggal yang dapat dicetak, Anda dapat menggunakan charCodeAt()
, jika Anda berurusan dengan kunci yang nilainya berisi beberapa karakter seperti ArrowUp
kemungkinan: Anda menguji kunci khusus dan mengambil tindakan yang sesuai. Jadi cobalah menerapkan tabel nilai kunci dan kode yang sesuai mereka charCodeArr["ArrowUp"]=38
, charCodeArr["Enter"]=13
, charCodeArr[Escape]=27
... dan seterusnya, silakan lihat di Nilai Key dan mereka kode yang sesuai
if(e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
var characterCode = e.which || e.charCode || e.keyCode || 0;
}
Mungkin Anda ingin mempertimbangkan kompatibilitas ke depan, yaitu menggunakan properti lama saat tersedia, dan hanya jika dilepaskan, alihkan ke yang baru:
if(e.which || e.charCode || e.keyCode ){
var characterCode = e.which || e.charCode || e.keyCode;
}else if (e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
var characterCode = 0;
}
Lihat juga: dokumenKeyboardEvent.code
properti dan beberapa detail lainnya dalam jawaban ini .
.key
didukung di setiap pengembang