Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   События клавиатуры (https://javascript.ru/forum/events/80097-sobytiya-klaviatury.html)

andrey44 27.04.2020 19:20

События клавиатуры
 
Надо создать страницу, которая выводит информацию обо всех нажатых, зажатых и отпущеных кнопкок клавиатуры.

Очень срочно. Буду благодарен за любую помощь.

Nexus 27.04.2020 19:40

Источник: https://learn.javascript.ru/keyboard-events

https://plnkr.co/edit/L6Q1Ov7NmtHDUNt6

<!DOCTYPE HTML>
<html>

<head>
  <meta charset="utf-8">
  <style>#area {
  width: 95%;
  box-sizing: border-box;
  height: 250px;
  border: 1px solid black;
  display: block;
}</style>
</head>

<body>
  
  <form id="form" onsubmit="return false">
    <textarea id="area" readonly></textarea>
    <input type="button" value="Очистить" onclick="area.value = ''" />
  </form>
  <script>const element = document.documentElement;
element.onkeydown = element.onkeyup = element.onkeypress = handle;

let lastTime = Date.now();

function handle(e) {
  let text = e.type +
    ' key=' + e.key +
    ' code=' + e.code +
    (e.shiftKey ? ' shiftKey' : '') +
    (e.ctrlKey ? ' ctrlKey' : '') +
    (e.altKey ? ' altKey' : '') +
    (e.metaKey ? ' metaKey' : '') +
    (e.repeat ? ' (repeat)' : '') +
    "\n";

  if (area.value && Date.now() - lastTime > 250) {
    area.value += new Array(81).join('-') + '\n';
  }
  lastTime = Date.now();

  area.value += text;
}</script>


</body>
</html>

andrey44 27.04.2020 19:56

спасибо большое!!!


Часовой пояс GMT +3, время: 20:50.