mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
listen to desired keyboard events
This commit is contained in:
parent
f2db0309ac
commit
fc5da31acf
@ -393,5 +393,6 @@
|
|||||||
<!-- internal -->
|
<!-- internal -->
|
||||||
<script src="./static/javascripts/api.js"></script>
|
<script src="./static/javascripts/api.js"></script>
|
||||||
<script src="./static/javascripts/app.js"></script>
|
<script src="./static/javascripts/app.js"></script>
|
||||||
|
<script src="./static/javascripts/keybindings.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</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