1. onkeydown事件
1.1. onkeydown事件会在用户按下一个键盘按键时发生。
1.2. 与onkeydown事件相关联的事件触发次序:
- onkeydown
- onkeypress
- onkeyup
1.3. 语法
1.3.1. html中:
<element onkeydown="SomeJavaScriptCode">
1.3.2. JavaScript中:
object.onkeydown=function(){SomeJavaScriptCode};
1.4. onkeydown属性可以适用于所有html元素, 除了: <base>, <bdo>, <br>, <frame>, <frameset>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>和<title>。一般给body、input和textarea元素使用。
1.5. 键盘上几乎所有的键都监听onkeydown事件, 测试了自己的键盘只有PrintScreen键没有监听onkeydown事件。
2. onkeypress事件
2.1. onkeypress事件会在键盘按键被按下并释放一个键时发生。
2.2. 语法
2.2.1. html中:
<element onkeypress="SomeJavaScriptCode">
2.2.2. JavaScript中:
object.onkeypress=function(){SomeJavaScriptCode};
2.3. onkeypress属性可以适用于所有html元素, 除了: <base>, <bdo>, <br>, <frame>, <frameset>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>和<title>。一般给body、input和textarea元素使用。
2.4. 一下键不监听onkeypress事件。
3. onkeyup事件
3.1. onkeyup 事件会在键盘按键被松开时发生。
3.2. 语法
3.2.1. html中:
<element onkeyup="SomeJavaScriptCode">
3.2.2. JavaScript中:
object.onkeyup=function(){SomeJavaScriptCode};
3.3. onkeyup属性可以适用于所有html元素, 除了: <base>, <bdo>, <br>, <frame>, <frameset>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>和<title>。一般给body、input和textarea元素使用。
3.4. 键盘上所有键都监听onkeyup 事件。
4. 例子
4.1. 代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>键盘事件</title>
</head>
<!-- 参数必须传递event -->
<body onkeydown="mykeydown(event)">
<p>请按下键盘上的任意键: <br /></p>
<script type="text/javascript">
var myP = document.querySelector("p");
function mykeydown(e){
myP.innerHTML += ("onkeydown ");
}
document.body.onkeypress = function(e){
myP.innerHTML += ("onkeypress ");
}
document.body.addEventListener("keyup", mykeyup, false);
function mykeyup(e){
myP.innerHTML += ("onkeyup" + "<br />");
}
</script>
</body>
</html>
4.2. 效果图