42 lines
1.1 KiB
HTML
42 lines
1.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Keyboard test</title>
|
|
</head>
|
|
<body>
|
|
<textarea></textarea>
|
|
<script>
|
|
window.result = "";
|
|
let textarea = document.querySelector('textarea');
|
|
textarea.focus();
|
|
textarea.addEventListener('keydown', event => {
|
|
log('Keydown:', event.key, event.code, modifiers(event));
|
|
});
|
|
textarea.addEventListener('input', event => {
|
|
log('input:', event.data, event.inputType, event.isComposing);
|
|
});
|
|
textarea.addEventListener('keyup', event => {
|
|
log('Keyup:', event.key, event.code, modifiers(event));
|
|
});
|
|
function modifiers(event) {
|
|
let m = [];
|
|
if (event.altKey)
|
|
m.push('Alt')
|
|
if (event.ctrlKey)
|
|
m.push('Control');
|
|
if (event.shiftKey)
|
|
m.push('Shift')
|
|
return '[' + m.join(' ') + ']';
|
|
}
|
|
function log(...args) {
|
|
console.log.apply(console, args);
|
|
result += args.join(' ') + '\n';
|
|
}
|
|
function getResult() {
|
|
let temp = result.trim();
|
|
result = "";
|
|
return temp;
|
|
}
|
|
</script>
|
|
</body>
|
|
</html> |