mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 21:19:19 +00:00
listen to desired keyboard events
This commit is contained in:
parent
f2db0309ac
commit
fc5da31acf
@ -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>
|
||||
|
23
src/assets/javascripts/keybindings.js
Normal file
23
src/assets/javascripts/keybindings.js
Normal 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();
|
||||
}
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user