Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM KeyboardEvent 객체 완벽 가이드: 속성, 이벤트 및 예제

HTML DOM KeyboardEvent 객체는 사용자가 키보드의 키를 누를 때 발생하는 이벤트를 나타냅니다. 웹 개발에서 키보드 입력을 감지하고 처리해야 할 때 이 객체를 활용하면 다양한 인터랙티브 기능을 구현할 수 있습니다.

KeyboardEvent의 주요 속성과 메서드

KeyboardEvent 객체는 아래와 같은 속성과 메서드를 제공합니다.

속성/메서드설명
altKey"ALT" 키가 눌렸는지 여부를 반환합니다.
charCode키의 유니코드(Unicode) 문자 코드를 반환합니다.
code눌린 키의 물리적 코드를 반환합니다.
ctrlKey"CTRL" 키가 눌렸는지 여부를 반환합니다.
getModifierState()지정한 보조 키(modifier key)가 활성화되어 있으면 true, 그렇지 않으면 false를 반환합니다.
isComposing이벤트가 입력 조합(composing) 상태인지 여부를 반환합니다.
key이벤트가 나타내는 키의 키 값(key value)을 반환합니다.
keyCode이벤트를 발생시킨 키의 유니코드 문자 코드를 반환합니다.
location키보드 또는 기기상에서 해당 키의 위치를 반환합니다.
metaKey키 이벤트가 발생했을 때 "meta" 키가 눌렸는지 여부를 반환합니다.
repeat키가 계속 눌려 있어 반복 입력 중인지 여부를 반환합니다.
shiftKey키 이벤트가 발생했을 때 "SHIFT" 키가 눌렸는지 여부를 반환합니다.
which이벤트를 발생시킨 키의 유니코드 문자 코드를 반환합니다.

KeyboardEvent 관련 이벤트

KeyboardEvent 객체에 작동하는 대표적인 이벤트는 다음과 같습니다.

이벤트설명
onkeydown사용자가 키를 누르고 있는 동안 발생합니다.
onkeypress사용자가 키를 눌렀을 때 발생합니다.
onkeyup사용자가 눌렀던 키를 놓았을 때 발생합니다.

예제: key 속성 활용하기

다음은 key 속성을 활용한 예제입니다. 사용자가 입력한 키 값에 따라 다른 메시지를 화면에 출력합니다.

<!DOCTYPE html>
<html>
<head>
<title>KeyboardEvent key</title>
<style>
   form {
      width:70%;
      margin: 0 auto;
      text-align: center;
   }
   * {
      padding: 2px;
      margin:5px;
   }
   input[type="button"] {
      border-radius: 10px;
   }
</style>
</head>
<body>
<form>
<fieldset>
<legend>KeyboardEvent-key</legend>
<label>빈칸 채우기:
<input type="text" id="textSelect" placeholder="__ for Ball" onkeypress="getEventData(event)" autocomplete="off">
</label>
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
   var divDisplay = document.getElementById("divDisplay");
   var textSelect = document.getElementById("textSelect");
   function getEventData(InputEvent) {
      if(InputEvent.key === 'B')
         divDisplay.textContent = 'Correct Answer';
      else if(InputEvent.key === 'b')
         divDisplay.textContent = 'Close call, you might have caps lock turned off';
      else
         divDisplay.textContent = 'Try Again, '+textSelect.placeholder;
      textSelect.textContent = '';
   }
</script>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다.

텍스트 필드에 아무것도 입력하지 않은 초기 화면:

HTML DOM KeyboardEvent 객체 완벽 가이드: 속성, 이벤트 및 예제

텍스트 필드에 소문자 'b'를 입력한 경우 — Caps Lock이 꺼져 있다는 안내 메시지가 표시됩니다:

HTML DOM KeyboardEvent 객체 완벽 가이드: 속성, 이벤트 및 예제

텍스트 필드에 대문자 'B'를 입력한 경우 — 정답 메시지가 표시됩니다:

HTML DOM KeyboardEvent 객체 완벽 가이드: 속성, 이벤트 및 예제

이처럼 KeyboardEvent 객체의 key 속성을 사용하면 사용자가 어떤 키를 눌렀는지 정확하게 판별할 수 있으며, 이를 응용하면 단축키 구현, 폼 유효성 검사, 게임 컨트롤 등 다양한 기능을 만들 수 있습니다.