Mã khóa JavaScript là gì? [đóng cửa]


82

Những mã khóa nào có sẵn cho JavaScript? Nếu chúng không giống nhau cho tất cả các trình duyệt, vui lòng liệt kê các mã khóa cho từng trình duyệt.


Vì vậy, để hoàn thành bạn muốn giống như toàn bộ phạm vi unicode? Bạn nên chỉ rõ ý bạn là "hoàn thành".
Jakub Hampl

Hoàn thành ý tôi là chứa tất cả các số mã khóa. Các ví dụ tôi đưa ra cho các số 8,9,13,16,17 ... Do đó bỏ qua một số số.
Web_Designer

3
Tôi tin rằng có một số lượng ký tự có thể đếm được mà mã khóa JavaScript được chỉ định.
Web_Designer

7
Tại sao không tự tạo một bảng như vậy bằng JavaScript?
pimvdb

1
@pimvdb Nhận lời khuyên của bạn! stackoverflow.com/a/14905611/552067
Web_Designer

Câu trả lời:


58

keyCodes khác với các giá trị ASCII. Để tham khảo đầy đủ về Mã khóa, hãy xem http://unixpapa.com/js/key.html

Ví dụ, các số Numpad có Mã khóa 96 - 105, tương ứng với phần đầu của bảng chữ cái viết thường trong ASCII. Điều này có thể dẫn đến sự cố khi xác thực đầu vào số.


2
Trang được liên kết đến không chứa tham chiếu đầy đủ. Nó giải thích đầy đủ rằng các mã khóa phụ thuộc vào bàn phím và ý nghĩa của các mã khóa hoặc tổ hợp mã khóa phụ thuộc vào phần mềm diễn giải chúng. Vì vậy, không thể có danh sách đầy đủ.
Jukka K. Korpela

9
http://www.javascriptkeycode.com có một trình tạo mã phím tiện dụng mà tôi đã sử dụng gần đây để kiểm tra các tổ hợp bàn phím khác nhau.
Raz Wilson

30

Đã làm theo lời khuyên của @ pimvdb và tạo của riêng tôi:

http://daniel-hug.github.io/characters/

Hãy kiên nhẫn, vì mất vài giây để tạo một phần tử cho mỗi trong số 65536 ký tự có mã khóa JavaScript.


13
Trang web kinh khủng, cho phép trình duyệt của tôi gặp sự cố mọi lúc. Không sử dụng cái này!
Florian Leitgeb

@Floeee Xin lỗi, nó hiện tạo một hàng trong bảng cho tất cả 65536 ký tự có mã khóa javascript. Nó thực hiện điều này rất hiệu quả, nhưng vẫn mất 10-20 giây. Tôi có thể thay đổi nó để nó tải 1000 chỉ để bắt đầu, sau đó nhiều hơn theo yêu cầu. Đã chỉnh sửa câu trả lời để giải thích điều này.
Web_Designer

Tại sao bạn không hiển thị một tin nhắn văn bản đơn giản ở đầu trang giải thích điều này?
Jared

4
Có thể chính xác hơn khi nói "mất 10-20 giây để trình duyệt của bạn gặp sự cố không thể phục hồi cho đến khi bạn kết thúc quá trình."
Cơn thịnh nộ bất đồng chính kiến

3
Đây là các mã ký tự không phải mã khóa. keyCodes được liệt kê trong phần 3.3 của unixpapa.com/js/key.html
Semra

18

Tôi cần một cái gì đó như thế này cho giao diện người dùng cấu hình điều khiển của trò chơi, vì vậy tôi đã biên soạn một danh sách cho các mã khóa bố cục bàn phím tiêu chuẩn của Hoa Kỳ và ánh xạ chúng thành các tên phím tương ứng.

Đây là một fiddle chứa bản đồ cho mã -> tên và ngược lại: http://jsfiddle.net/vWx8V/

Nếu bạn muốn hỗ trợ các bố cục chính khác, bạn sẽ cần sửa đổi các bản đồ này để phù hợp với chúng một cách riêng biệt.

Đó là trừ khi bạn đang tìm kiếm danh sách các giá trị mã khóa bao gồm các ký tự điều khiển và các giá trị đặc biệt khác không thể (hoặc hiếm khi) có thể nhập bằng bàn phím và có thể nằm ngoài phạm vi của keydown/keypress / keyupsự kiện của Javascript. Nhiều người trong số họ là các ký tự điều khiển hoặc các ký tự đặc biệt như null( \0) và rất có thể bạn sẽ không cần đến chúng.

Lưu ý rằng số lượng phím trên bàn phím đầy đủ ít hơn nhiều giá trị mã khóa.


thêm một lời cảm ơn. có những thứ này đã có trong các đối tượng là một tiết kiệm thời gian tuyệt vời.
charlie roberts

Khi tôi nhấn nút + cmd bên phải trên mac của mình, nó sẽ trả về Nhấp chuột phải?
Tháng Tám

8

http://keycodes.atjayjo.com/

Ứng dụng này thật tuyệt vời. Về cơ bản, nó là một bàn phím ảo hiển thị ngay cho bạn mã phím được nhấn trên bàn phím tiêu chuẩn của Hoa Kỳ.


4
Bất chấp nỗ lực của OP để theo dõi. Đây chỉ tuyệt vời!
sealocal



1

Một câu trả lời có thể sẽ được đưa ra khi bạn chạy đoạn mã này.

document.write('<table>')
for (var i = 0; i < 250; i++) {
  document.write('<tr><td>' + i + '</td><td>' + String.fromCharCode(i) + '</td></tr>')
}
document.write('</table>')
td {
  border: solid 1px;
  padding: 1px 12px;
  text-align: right;
}
table {
  border-collapse: collapse;
}
* {
  font-family: monospace;
  font-size: 1.1em;
}


1
Đây không phải là mã khóa, chúng là mã ký tự. Đó là khác nhau
Lukas Eder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.