aboutsummaryrefslogtreecommitdiff
path: root/assets/search.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/search.js')
-rw-r--r--assets/search.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/assets/search.js b/assets/search.js
index 9b1c5ab..e064a14 100644
--- a/assets/search.js
+++ b/assets/search.js
@@ -10,6 +10,29 @@
input.addEventListener('focus', init);
input.addEventListener('keyup', search);
+ document.addEventListener('keypress', focusSearchFieldOnKeyPress);
+
+ function focusSearchFieldOnKeyPress(e) {
+ if (input === document.activeElement) {
+ return;
+ }
+
+ const characterPressed = String.fromCharCode(e.charCode);
+ if (!isHotkey(characterPressed)) {
+ return;
+ }
+
+ input.focus();
+ e.preventDefault();
+ }
+
+ function isHotkey(character) {
+ const dataHotkeys = input.getAttribute('data-hotkeys') || '';
+ const hotkeys = dataHotkeys.split(' ');
+
+ return dataHotkeys.indexOf(character) >= 0;
+ }
+
function init() {
input.removeEventListener('focus', init); // init once
input.required = true;