웹개발
[명품 웹 프로그래밍] 9장 예제 9-20, 키 이벤트 리스너
hatch
2021. 12. 12. 22:25
728x90
반응형
1. 키 이벤트 종류
1) onkeydown : 키가 눌러지는 순간 호출. 모든 키에 대해 작동
2) onkeyup : 눌러진 키가 떼어지는 순간 호출
3) onkeypress : 1)번과 동일하나 문자 키 + Enter, Space, Esc 에 대해서만 작동.
a. 문자키가 아닌 F1, Shift 등에 대해서는 호출되지 않음.
실행 화면
초기 화면 | 일반적인 키 | alt 등 특수 키 |
![]() |
![]() |
![]() |
2. 자바스크립트 코드(그대로 베낌, 복습 필요)
- (중요!) String.fromCharCode(e.keyCode) : 키보드 내에 눌린 키를 알려줌. 많이 사용하므로 기억할 것!
<!DOCTYPE html>
<html><head><meta charset="UTF-8">
<title>x</title>
<style>
div {background-color: skyblue; width: 250px; height: 50px;}
</style>
</head>
<body>
<h3>키 이벤트</h3>
<hr>
<p>Alt, Shift, Ctrl 키도 가능. 눌러보시오.</p>
<input type="text" id="text" onkeydown="whatKeyDown(event)">
<div id="div"></div>
<script>
function whatKeyDown(e) {
var str = "";
var div = document.getElementById("div");
//div 객체 내용 지우기
div.innerHTML = "";
if(e.altKey) {
if(e.altLeft) str += "왼쪽 Alt키가 눌러짐";
else str += "오른쪽 Alt키가 눌러짐";
str += "<br>";
}
if(e.shiftKey) {
if(e.shiftLeft) str += "왼쪽 Shift키가 눌러짐";
else str += "오른쪽 Shift키가 눌러짐";
str += "<br>";
}
if(e.ctrlKey) {
if(e.ctrlLeft) str += "왼쪽 Ctrl키가 눌러짐";
else str += "오른쪽 ctrl키가 눌러짐";
str += "<br>";
}
str += String.fromCharCode(e.KeyCode) + "키가 눌러졌습니다."
div.innerHTML = str;
}
</script>
</body>
</html>
3. 복습
- (재강조) String.fromCharCode(e.keyCode) : 키보드 내에 눌린 키를 알려줌. 많이 사용하므로 기억할 것!
- alt, shift, ctrl 키 가운데 왼쪽 / 오른쪽 눌러졌다는 문장 안나오는 경우 있었음.
- 키를 누르는 '순간' 바로 호출이 되므로 떼고서도 기록 남아있음.
>> 새로 입력하는 순간 내용 변하긴 함.
손 떼고 기록 없애려면 onkeyup 이벤트에 대해 작성 필요.