Bên cạnh đó tất cả các keyCode , mà , charCode và keyIdentifier được chấp nhận:
charCode
và keyIdentifier
những tính năng phi tiêu chuẩn.
keyIdentifier
bị xóa kể từ Chrome 54 và Opera 41.0
keyCode
trả về 0, trong sự kiện nhấn phím với các ký tự bình thường trên FF.
Thuộc tính chính :
readonly attribute DOMString key
Giữ một giá trị thuộc tính khóa tương ứng với phím được nhấn
Tính đến thời điểm viết bài này, thuộc key
tính được hỗ trợ bởi tất cả các trình duyệt chính như: Firefox 52, Chrome 55, Safari 10.1, Opera 46. Ngoại trừ Internet Explorer 11 có:
mã nhận dạng khóa không chuẩn và hoạt động không chính xác với AltGraph. Thêm thông tin
Nếu điều đó quan trọng và / hoặc khả năng tương thích ngược, thì bạn có thể sử dụng tính năng phát hiện như trong đoạn mã sau:
Lưu ý rằng key
giá trị khác với keyCode
hoặc which
thuộc tính ở chỗ: nó chứa tên của khóa chứ không phải mã của nó. Nếu chương trình của bạn cần mã ký tự thì bạn có thể sử dụng charCodeAt()
. Đối với các ký tự có thể in đơn lẻ, bạn có thể sử dụng charCodeAt()
, nếu bạn đang xử lý các khóa có giá trị chứa nhiều ký tự như ArrowUp
cơ hội: bạn đang kiểm tra các khóa đặc biệt và thực hiện các hành động tương ứng. Vì vậy, cố gắng thực hiện một bảng giá trị phím và mã tương ứng của họ charCodeArr["ArrowUp"]=38
, charCodeArr["Enter"]=13
, charCodeArr[Escape]=27
... và như vậy, xin vui lòng hãy nhìn vào giá trị chính và họ mã tương ứng
if(e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
/* As @Leonid suggeted */
var characterCode = e.which || e.charCode || e.keyCode || 0;
}
/* ... code making use of characterCode variable */
Có thể bạn muốn xem xét khả năng tương thích chuyển tiếp, tức là sử dụng các thuộc tính kế thừa khi chúng có sẵn và chỉ khi bị loại bỏ, hãy chuyển sang các thuộc tính mới:
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;
}
Xem thêm: KeyboardEvent.code
tài liệu về tài sản và một số chi tiết khác trong câu trả lời này .
.key
được hỗ trợ trong mọi nhà phát triển