|
@@ -0,0 +1,58 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html>
|
|
|
+
|
|
|
+<head>
|
|
|
+ <script>
|
|
|
+ 'use strict';
|
|
|
+
|
|
|
+ const keys = [
|
|
|
+ // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
|
|
|
+ // without deprecated / non-standard
|
|
|
+ "altKey", "code", "ctrlKey", "isComposing", "key", "locale", "location", "metaKey",
|
|
|
+ "repeat", "shiftKey",
|
|
|
+ // empiricial
|
|
|
+ "composed"
|
|
|
+ ]
|
|
|
+
|
|
|
+ let output_list = [];
|
|
|
+
|
|
|
+ function select_keys(obj, keys) {
|
|
|
+ let new_obj = {}
|
|
|
+ for (let k in event)
|
|
|
+ if (keys.indexOf(k) != -1)
|
|
|
+ new_obj[k] = event[k]
|
|
|
+ return new_obj
|
|
|
+ }
|
|
|
+
|
|
|
+ let key_handler_builder = (event_type) => (event) => {
|
|
|
+ if (event["target"].id != "input")
|
|
|
+ return;
|
|
|
+ let output = {
|
|
|
+ "event_type": event_type,
|
|
|
+ "event": select_keys(event, keys)
|
|
|
+ }
|
|
|
+ output_list.push(output);
|
|
|
+ let to_print = JSON.stringify(
|
|
|
+ output_list,
|
|
|
+ undefined,
|
|
|
+ 2);
|
|
|
+ document.getElementById("outputs").innerText = to_print;
|
|
|
+ }
|
|
|
+
|
|
|
+ document.addEventListener('keydown', key_handler_builder('keydown'), false);
|
|
|
+ document.addEventListener('keyup', key_handler_builder('keyup'), false);
|
|
|
+
|
|
|
+ window.onload = (e) => {
|
|
|
+ document.getElementById("input").focus();
|
|
|
+ }
|
|
|
+
|
|
|
+ </script>
|
|
|
+</head>
|
|
|
+
|
|
|
+<body>
|
|
|
+ <input id="input" />
|
|
|
+ <h2>Key Down</h2>
|
|
|
+ <p id="outputs" style="white-space: pre;" />
|
|
|
+</body>
|
|
|
+
|
|
|
+</html>
|