keyCode 事件属性 | HTML DOM 事件对象

返回到:DOM 对象:HTML DOM 事件对象

定义和使用

keyCode 属性返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的代码。

两种代码类型的区别是:

  • 字符代码 – 表示 ASCII 字符的数字
  • 键盘代码 – 表示键盘上真实键的数字

p>两种类型的值不是都相等的,例如小写字符 “w” 和大写字符 “W” 有相同的键盘代码,因为他们他们键盘上 ( “W” 代码为 “87”),但是它们有不同的字符代码,两个字符输出是不一样的( “w” 和 “W” 字符代码为 “119” 和 “87”) – 查看以下实例可以更好的理解。

提示: 如果需要知道用户按下的是打印键 (如 “a” 或 “5”),建议使用 onkeypress 事件。如果需要知道用户按下的是功能键(如 “F1”, “CAPS LOCK” 或 “Home”) 可使用 onkeydown 或 onkeyup 事件。

注意: 在 Firefox 中,, keyCode 属性在 onkeypress 事件中是无效的 (返回 0)。浏览器兼容问题,可以一起使用 which 和 keyCode 属性来解决:var x = event.which || event.keyCode;  // 使用 which 或 keyCode, 这样可支持不同浏览器。

提示: 如果你需要将 Unicode 值转换为字符,可以使用 fromCharCode() 方法。

注意: 该属性是只读的。

注意: which 和 keyCode 属性提供了解决浏览器的兼容性的方法,最新版本的 DOM 事件推荐使用 key 属性来替代该方法。

提示: 如果你想查看是否按下了 “ALT”, “CTRL”, “META” 或 “SHIFT” 键,可使用 altKeyctrlKeymetaKey 或 shiftKey 属性。

浏览器支持

属性谷歌IE火狐苹果opera
keyCodeYesYesYesYesYes

语法

event.keyCode

技术细节

返回值:数字,表示 Unicode 字符代码或 Unicode 键代码
DOM 版本:DOM Level 2 Events

实例

使用 onkeypress 和 onkeydown 来演示字符代码与键盘代码的区别:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web176.com教程(web176.com)</title>
</head>	
<body>

<p>在输入框中输入键盘上的字母获取按下字母的 Unicode 字母代码和 Unicode 键代码 。</p>
<p><strong>注意:</strong>  which 和 keyCode 属性不能用于onkeypress的非打印事件,功能键 (如 CAPS LOCK, CTRL, ESC, F12, 等)。</p>
<input type="text" size="50" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
<p>onkeypress - <span id="demo"></span></p>
<p>onkeydown - <span id="demo2"></span></p>
<script>
function uniCharCode(event) {
    var char = event.which || event.keyCode;
    document.getElementById("demo").innerHTML = " Unicode 字符代码为: " + char;
}
function uniKeyCode(event) {
    var key = event.keyCode;
    document.getElementById("demo2").innerHTML = " Unicode 键代码为: " + key;
}
</script>

</body>
</html>

再来个实例:如果按下 Esc 键弹出提示信息。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web176.com教程(web176.com)</title>
</head>	
<body>

<p>在输入框中按下 Esc 键(左上角)会弹出提示信息。</p>
<input type="text" size="50" onkeydown="keyCode(event)"> 
<script>
function keyCode(event) {
    var x = event.keyCode;
    if (x == 27) {
        alert ("你按下了 Esc 键!");
    }
}
</script>

</body>
</html>

再来一个:将 Unicode 值转换为字符 (不能用于功能键)。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web176.com教程(web176.com)</title>
</head>	
<body>

<p>在输入框中按下键盘上的按键获取字符和数字。 </p>
<input type="text" size="40" onkeypress="myFunction(event)">
<p id="demo"></p>
<script>
function myFunction(event) {
    var x = event.keyCode;               // 获取 Unicode 值
    var y = String.fromCharCode(x);      // 将值转换为字符
    document.getElementById("demo").innerHTML = "数字: " + x + " = 字符: " + y;
}
</script>

</body>
</html>

作者:terry,如若转载,请注明出处:https://www.web176.com/javascriptbook/domtips/4245.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2021年11月22日 下午3:44
下一篇 2021年11月22日 下午3:58

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注