![](/img/trans.png)
[英]How to get different javascript keycodes for [ and { and ' and "
[英]How are keycodes decided?
是否有 keyCode 為 1 的密鑰? 我試過研究,但找不到任何東西。 每個鍵的鍵碼由什么決定? 就是想...
var directions = {
37: "left",
38: "up",
39: "right",
40: "down",
87:"up",
68:"right",
83:"down",
65:"left"
};
這里顯示了左、右、上、下鍵和 w、a、s、d 鍵的鍵碼。
(修改)
UIEvents 標准中涵蓋了鍵盤事件的舊keyCode
屬性的值。 特別是
keyCode
通常是按下的鍵的 ASCII 字符代碼,特別是對於數字和大寫字母。keyup
和keydown
事件返回的keyCode
值的大寫字母的ASCII碼,但是-keypress
事件keypress
寫字母的keycode
是小寫字母的 ASCII 碼。keyCode
,其功能類似於ASCII控制字符,是控制字符的ASCII碼。 EG TAB
、 CR
、 BS
或ESC
分別為 Tab、Enter、Backspace 或 Esc 標簽鍵返回 ASCII 代碼。keyCode
可以從7.3.3或7.3.4節所示的鍵碼表中獲得。 因此,它們的keyCode
值不是它們的 ASCII 值。Del
使用“d”,功能鍵F1
到F11
使用字母“p”到“z”)或字符的 ASCII 代碼的keyCode
值用於keydown
和keyup
事件其密鑰代碼取自表 7.3.3 或 7.3.4。 上面有鏈接。 EG F12
使用關於“{”的ASCII碼, ArrowLeft
為“%”和pageDown
為““”作為它們keyCode
值)。
鍵碼是如何決定的?
keyCode
值的起源可能可以追溯到物理鍵盤的掃描代碼如何以兩個字節的形式發送到 PC:一個字節用於按下的字符,一個狀態字節用於修改鍵,如 Shift、Alt 等。 這可以通過針對不同鍵盤布局的查找表進行轉換,但至少有一個瀏覽器最終會使用keyCode
解決方案來表示使用 8 位值表示按下了哪個鍵。 無論瀏覽器是什么,其他瀏覽器都會效仿以變得“兼容”。
避免在現代瀏覽器中使用keyCode
值,除非需要支持在事件對象的key
屬性中不提供 Unicode 或 命名值的舊瀏覽器。
是否有 keyCode 為 1 的密鑰?
ASCII 碼值 1 是 ASCII SOH
(標題開始)控制字符,它是在舊的 ASCII 鍵盤上通過同時按下Ctrl
和A
鍵生成的。 沒有提到它是由它自己的鍵盤鍵生成的(它沒有一個),或者在標准的第 7 節中被用於其他任何東西。
簡而言之,不可能從瀏覽器中的 PC 鍵盤生成keycode
值1
*。 您可以嘗試使用ctrlKey
事件屬性集檢測A
鍵,但Ctrl+A
在軟件中廣泛用於“全選”。
* 在 Windows 下,在按住 ALT 鍵的同時在鍵盤上鍵入 0,0 和 1 會產生一個SOH
字符,並且我的編輯器會識別出這樣的字符。 在 Firefox 中嘗試這個技巧沒有用,只是為ALT
、 0
、 0
和1
生成了關鍵事件。
https://www.w3schools.com/jsref/event_key_keycode.asp
utf8/16 已經取代了 ASCII,因為計算已經適應系統地處理世界上所有的語言。 https://www.w3schools.com/charsets/ref_html_utf8.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.