一个简单的问题:当我在HTML中使用onkeydown
事件时,如何找出按下了哪个键?我敢肯定它真的很容易,但我试过谷歌搜索它; w3schools没有帮助,所有其他结果都是人们询问特定的浏览器。有没有办法适用于所有主流浏览器?
谢谢!
答案 0 :(得分:6)
您正在寻找的事件是keydown Event,它为您提供以下属性
char
DOMString(字符串)键的字符值。如果键对应于可打印字符,则此值是包含该字符的非空Unicode字符串。如果键没有可打印的表示,则为空字符串。请参阅详细信息的键名和字符值。只读。
注意:如果该键用作插入多个字符的宏,则此属性的值是整个字符串,而不仅仅是第一个字符。
key
DOMString(string)事件代表的键的键值。如果值具有打印表示,则此属性的值与char属性相同。否则,它是{{anch(“Key values”)}}中指定的键值字符串之一。如果无法识别密钥,则为“Unidentified”字符串。请参阅详细信息的键名和字符值。只读。
charCode
不推荐使用无符号长整数(int)密钥的Unicode引用号;此属性仅由keypress事件使用。对于char属性包含多个字符的键,这是该属性中第一个字符的Unicode值。只读。
警告:不推荐使用此属性;如果可以的话,你应该使用char。
keyCode
已弃用无符号long(int)依赖于系统和实现的数字代码,用于标识所按下的键的未修改值。这通常是与密钥对应的十进制ASCII({{RFC(20)}})或Windows 1252代码;请参阅{{anch(“虚拟键码”)}}以获取常用值列表。如果无法识别密钥,则此值为0.只读
警告:不推荐使用此属性;你应该使用密钥,如果可用的话。
which
不推荐使用无符号long(int)系统和实现相关的数字代码,用于标识所按下的键的未修改值;这通常与keyCode相同。只读。
警告:不推荐使用此属性;你应该使用密钥,如果可用的话。
由于实施不一致,您需要使用logical OR ||
来获取客户端浏览器支持的版本。
答案 1 :(得分:0)
通常,您希望避免在html中设置事件。但如果我不得不猜测你的代码有点像这样:
<tag onkeydown="javascript:function_name()">
拥有实际代码可以帮助指导这一点,但这是下一步。
function function_name(event){
console.log(event.key) //or event.keyCode / event.which
}
这应输出您按下的键。供您自己参考。