键码和字符码

人们为什么写这样的陈述


e.keyCode ? e.keyCode : e.charCode

有些人也用 e.which


有人可以解释一下吗?


DIEA
浏览 587回答 3
3回答

GCT1015

始终如一地处理关键事件并非易事。首先,有两种不同类型的代码:键盘代码(代表用户按下的键盘上的键的数字)和字符代码(代表Unicode字符的数字)。您只能在keypress事件中可靠地获取字符代码。不要尝试获取keyup和keydown事件的字符代码。其次,您在keypress事件中获得的值集与在keyup或keydown事件中获得的值不同。我建议将此页面作为有用的资源。作为总结:如果您有兴趣检测用户键入字符,请使用该keypress事件。IE奇怪地仅将字符代码存储在中,keyCode而所有其他浏览器将字符代码存储在中which。一些(但不是全部)浏览器也将其存储在charCode和/或中keyCode。一个示例按键处理程序:function(evt) {  evt = evt || window.event;  var charCode = evt.which || evt.keyCode;  var charStr = String.fromCharCode(charCode);  alert(charStr);}如果您有兴趣检测不可打印的键(例如光标键),请使用该keydown事件。这keyCode始终是要使用的属性。请注意,keyup事件具有相同的属性。function(evt) {  evt = evt || window.event;  var keyCode = evt.keyCode;  // Check for left arrow key  if (keyCode == 37) {    alert("Left arrow");  }}

慕村9548890

这是一个条件语句。如果浏览器支持e.keyCode,则采用e.keyCode,否则为e.charCode。它类似于var code = event.keyCode || event.charCodeevent.keyCode:返回按键事件中的非字符键或任何其他类型的键盘事件中的任何键的Unicode值。event.charCode:返回在按键事件期间按下的字符键的Unicode值。

回首忆惘然

好的,这里是解释。e.keyCode-用于获取代表键盘上键的数字e.charCode-一个数字,代表键盘上按键的unicode字符e.which-(特定于jQuery)是jQuery中引入的属性(请勿在纯JavaScript中使用)以下是获取keyCode和charCode的代码段<script>// get key codefunction getKey(event) {&nbsp; event = event || window.event;&nbsp; var keyCode = event.which || event.keyCode;&nbsp; alert(keyCode);}// get char codefunction getChar(event) {&nbsp; event = event || window.event;&nbsp; var keyCode = event.which || event.keyCode;&nbsp; var typedChar = String.fromCharCode(keyCode);&nbsp; alert(typedChar);}</script>在JavaScript中获取keyCode和charCode的实时示例。
打开App,查看更多内容
随时随地看视频慕课网APP