[英]Finding the Unicode for the key pressed in javascript
如何確定javascript中按下的鍵的Unicode?
我搜索了這個,大多數結果只回答了如何找到keyCode。 任何幫助將不勝感激。
理論上,根據DOM3事件 ,您應該使用事件對象的key
屬性。 在實踐中,除了足夠新的IE版本之外,它不起作用。
實際的方法是使用which
屬性或charCode
屬性,即使DOM3 Events草案對它們不滿意:
傳統上,瀏覽器對鍵盤的支持依賴於三個ad-hoc屬性,
keyCode
,charCode
和which
。所有這三個屬性都返回一個代表按下
keyCode
某個方面的數字代碼:keyCode
是鍵本身的索引。charCode
是字符鍵的ASCII值。which
是可用的字符值,否則是鍵索引。 這些屬性的值以及屬性的可用性在平台,鍵盤語言和布局,用戶代理,版本甚至事件類型之間不一致。
實際上, charCode
返回Unicode值(代碼編號)。
以下簡單代碼可用於測試功能(它只是回顯頁面元素中的字符編號):
<style>
#o { border: solid black 1px; }
</style>
<input id=i>
<div id=o></div>
<script>
document.getElementById('i').onkeypress = function (e) {
var ev = e || window.event;
document.getElementById('o').innerHTML +=
ev.charCode + ' ';
}
</script>
這似乎適用於現代瀏覽器,包括IE 9和更新版本。 對於較舊的瀏覽器,您可能需要嘗試根據鍵盤映射的猜測對keyCode
執行某些操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.