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