簡體   English   中英

查找在javascript中按下的鍵的Unicode

[英]Finding the Unicode for the key pressed in javascript

如何確定javascript中按下的鍵的Unicode?

我搜索了這個,大多數結果只回答了如何找到keyCode。 任何幫助將不勝感激。

理論上,根據DOM3事件 ,您應該使用事件對象的key屬性。 在實踐中,除了足夠新的IE版本之外,它不起作用。

實際的方法是使用which屬性或charCode屬性,即使DOM3 Events草案對它們不滿意:

傳統上,瀏覽器對鍵盤的支持依賴於三個ad-hoc屬性, keyCodecharCodewhich

所有這三個屬性都返回一個代表按下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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM