นอกจากว่าทุกkeyCode , ซึ่ง , charCodeและkeyIdentifierจะเลิกใช้:
charCode
และkeyIdentifier
มีคุณสมบัติที่ไม่ได้มาตรฐาน
keyIdentifier
จะถูกลบออกเมื่อ Chrome 54 และ Opera 41.0
keyCode
จะคืนค่า 0 ในเหตุการณ์การกดแป้นพิมพ์ที่มีอักขระปกติบน FF
คุณสมบัติหลัก :
readonly attribute DOMString key
เก็บค่าแอตทริบิวต์ของคีย์ที่สอดคล้องกับคีย์ที่กด
ในขณะที่เขียนนี้key
คุณสมบัตินี้ได้รับการสนับสนุนโดยเบราว์เซอร์หลักทั้งหมดตั้งแต่: Firefox 52, Chrome 55, Safari 10.1, Opera 46 ยกเว้น Internet Explorer 11 ซึ่งมี:
ตัวระบุคีย์ที่ไม่ได้มาตรฐานและพฤติกรรมที่ไม่ถูกต้องกับ AltGraph ข้อมูลเพิ่มเติม
หากสิ่งนี้มีความสำคัญและ / หรือความเข้ากันได้แบบย้อนหลังคุณสามารถใช้การตรวจหาคุณสมบัติตามรหัสต่อไปนี้:
สังเกตว่าkey
ค่าจะแตกต่างจากkeyCode
หรือwhich
คุณสมบัติในนั้น: มีชื่อของคีย์ไม่ใช่รหัส หากโปรแกรมของคุณต้องการรหัสอักขระคุณสามารถใช้ประโยชน์จากcharCodeAt()
ไฟล์. สำหรับอักขระที่พิมพ์ได้ตัวเดียวคุณสามารถใช้ได้charCodeAt()
หากคุณกำลังจัดการกับคีย์ที่มีค่าหลายอักขระเช่นArrowUp
มีโอกาส: คุณกำลังทดสอบคีย์พิเศษและดำเนินการตามนั้น จึงพยายามดำเนินตารางค่าคีย์และรหัสที่สอดคล้องกันของพวกเขาcharCodeArr["ArrowUp"]=38
, charCodeArr["Enter"]=13
, charCodeArr[Escape]=27
... และอื่น ๆ โปรดดูที่ค่าคีย์ของพวกเขาและรหัสที่สอดคล้องกัน
if(e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
var characterCode = e.which || e.charCode || e.keyCode || 0;
}
คุณอาจต้องการพิจารณาความเข้ากันได้ไปข้างหน้าเช่นใช้คุณสมบัติเดิมในขณะที่พร้อมใช้งานและเมื่อเปลี่ยนไปใช้คุณสมบัติใหม่เท่านั้น:
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;
}
ดูเพิ่มเติม: เอกสารKeyboardEvent.code
คุณสมบัติและรายละเอียดเพิ่มเติมในคำตอบนี้
.key
ได้รับการสนับสนุนในผู้พัฒนา