listen to desired keyboard events

This commit is contained in:
Duarte Dias 2021-02-07 21:32:42 +00:00 committed by Nazar Kanaev
parent f2db0309ac
commit fc5da31acf
2 changed files with 24 additions and 0 deletions

View File

@ -393,5 +393,6 @@
<!-- internal -->
<script src="./static/javascripts/api.js"></script>
<script src="./static/javascripts/app.js"></script>
<script src="./static/javascripts/keybindings.js"></script>
</body>
</html>

View File

@ -0,0 +1,23 @@
const keybindings = {}
function isTextBox(element) {
var tagName = element.tagName.toLowerCase();
// Input elements that aren't text
const inputBlocklist = ['button','checkbox','color','file','hidden','image','radio','range','reset','search','submit']
return tagName === 'textarea' ||
( tagName === 'input'
&& !inputBlocklist.includes(element.getAttribute('type').toLowerCase())
)
}
document.addEventListener('keydown',function(event) {
if(isTextBox(event.target)) {
return;
}
const keybindFunction = keybindings[event.key];
if(keybindFunction) {
event.preventDefault();
keybindFunction();
}
})