VueJS listening to keycombinations via mounted event listener
VueJS listening to keycombinations via mounted event listener
I have working global key listener, but it manages to catch only single key stroke. How can I catch combinations like ctrl+enter?
mounted()
window.addEventListener
(
"keypress", e =>
console.log(e.key);
);
,
Input device events
Input device events
click, contextmenu, DOMMouseScroll, dblclick, gamepadconnected, gamepaddisconnected, keydown, keypress, keyup, MozGamepadButtonDown, MozGamepadButtonUp, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, mousewheel, MozMousePixelScroll, pointerlockchange, pointerlockerror,wheel
click, contextmenu, DOMMouseScroll, dblclick, gamepadconnected, gamepaddisconnected, keydown, keypress, keyup, MozGamepadButtonDown, MozGamepadButtonUp, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, mousewheel, MozMousePixelScroll, pointerlockchange, pointerlockerror,wheel
none of those seems to fit it
nor this is not working properly
"keypress", e =>
if (e.ctrlKey)
console.log(e.key);
1 Answer
1
Try this, we're checking ctrl is pressed and the (another) pressed key is not ctrl:
window.addEventListener
(
"keydown", e =>
var evt = window.event ? event : e;
if (evt.ctrlKey && evt.keyCode !== 17)
console.log('Ctrl + ' + e.key);
);
JSFiddle
You may also be interested in using vue-global-events which allows you to write global key listeners in Vue style (e.g. @keyup.ctrl.tab="nextTab"
).
@keyup.ctrl.tab="nextTab"
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.