2015-07-06 21 views
6

Khi tôi chuyển bố cục bàn phím thành hình chữ nhật và bấm một ký tự, nó sẽ được nhận trong sự kiện kepress. Ví dụ: nhấp vào ה (phím v), sau đó e.which là 1492. Tuy nhiên, khi tôi kết hợp phím là khóa tiếng anh. Vì vậy, đối alt+הe.which là 86. Vì vậy, sự kiện này trông giống như alt+vcách xử lý các phím bấm không phải tiếng Anh

Đây là một nỗi đau nếu tôi muốn tạo một hàm chấp nhận tổ hợp phím và callbacks và đăng ký các callbacks nhưng cũng cho thấy một tài liệu hướng dẫn của callbacks, vì nếu tôi đăng ký alt+ה, sau đó khi tôi nhấn tổ hợp, nó sẽ trông giống như alt+v và nó sẽ không khớp với các kết hợp đã đăng ký. Nhưng nếu tôi đăng ký alt+v, thì tài liệu sẽ khó xử.

Vì vậy, câu hỏi của tôi nắm để cho dù một trong những cách sau có thể:

  1. biết mà quan trọng thực sự được nhấn (có nghĩa là, khi biết rằng ה được ép cùng với alt và không v)
  2. ánh xạ giữa các ký tự đại diện (hoặc bất kỳ không phải tiếng Anh) nào đối với các đối tác tiếng Anh thực của chúng, vì vậy khi hàm của tôi nhận được alt+ה, nó sẽ chuyển đổi nó thành alt+v để tra cứu cuộc gọi lại.

Tất nhiên tôi muốn một cái gì đó chung chung, sẽ hoạt động với bất kỳ ngôn ngữ nào, không chỉ liệt kê bảng chữ cái tiếng do thái.

+1

Mặc dù được hỗ trợ kém, W3C hiện có [bản nháp làm việc] (https://developer.mozilla.org/en-US/docs/Web/API/ KeyboardEvent/code) về chủ đề. –

+0

Rõ ràng đây chỉ là một phỏng đoán được giáo dục, nhưng có thể một trong các lớp ở trên (bàn phím, hệ điều hành) thực hiện chuyển đổi này trước khi nó tiếp cận trình duyệt, cho phép giao diện nhất quán cho các hoạt động phổ biến (sao chép, dán, cắt, chọn tất cả , lưu, vv), điều này thực sự có ý nghĩa, vì vậy nếu bạn thấy hành vi này đủ nhất quán trên các hệ thống, thì hãy sử dụng tài liệu khó xử và vui rằng bạn không phải xử lý mọi bàn phím ngôn ngữ. –

Trả lời

0
  1. Bạn không nên quan tâm nếu nó là alt- ה hoặc alt-v, bạn muốn thực hiện cùng một thao tác trên cả hai trường hợp.
  2. Nếu nó không được xác định, nó không được xác định bất cứ nơi nào, vì vậy chức năng của bạn sẽ nhận được alt-v là tốt.
  3. nếu hàm của bạn nhận được thứ gì đó ("Alt", "ה"), bạn nên tạo đối tượng để chuyển đổi. var conv = {'ה': 'v'; 'ש': 'a', ...}
Các vấn đề liên quan