admin管理员组文章数量:1406052
I have a record functionality in my website. If a user hits Ctrl+Alt+R the recording will begin. Now I would like a button named RECORD
in my html page, so that when a user hits that button recording will start.
<button type="submit" class="btn btn-primary" data-toggle="tooltip" data-placement="top" onclick="record_session()" title="Start Recording">Record</button>
in my function below
function record_session(){
//how can i trigger or initiate ctrl+alt+r here??
}
I have a record functionality in my website. If a user hits Ctrl+Alt+R the recording will begin. Now I would like a button named RECORD
in my html page, so that when a user hits that button recording will start.
<button type="submit" class="btn btn-primary" data-toggle="tooltip" data-placement="top" onclick="record_session()" title="Start Recording">Record</button>
in my function below
function record_session(){
//how can i trigger or initiate ctrl+alt+r here??
}
Share
Improve this question
edited Jun 3, 2015 at 21:16
Erick Petrucelli
15k9 gold badges66 silver badges87 bronze badges
asked Apr 1, 2015 at 10:26
Karthikeya VaidyaKarthikeya Vaidya
1311 gold badge3 silver badges7 bronze badges
2 Answers
Reset to default 3If you use jQuery you can add keypress event:
$(document).keypress(function(e) {
if (e.which === 114 && e.ctrlKey && e.altKey) {
record_session();
}
});
UPDATE:
var enable_keypress = false;
function record_session(){
enable_keypress = true;
}
$(document).keypress(function(e) {
if (enable_keypress) {
if (e.which === 114 && e.ctrlKey && e.altKey) { // ctrl+alt+r
}
}
});
UPDATE 2
to fire keyboard event you can use this:
jQuery:
function keydown(ctrl, alt, shift, which, key) {
var e = $.Event("keydown");
e.ctrlKey = ctrl;
e.altKey = alt;
e.shiftKey = shift;
if (typeof which === 'string') {
key = which;
which = key.toUpperCase().charCodeAt(0);
}
e.key = key;
e.which = e.keyCode = which;
return e;
}
function keypress(key) {
var e = $.Event("keypress");
e.key = key;
e.which = e.keyCode = 0;
return e;
}
function shortcut({
ctrl = false,
alt = false,
shift = false,
which,
key
}) {
var doc = $(document.documentElement || window);
if (typeof which === 'string') {
key = which;
which = key.toUpperCase().charCodeAt(0);
}
doc.trigger(keydown(ctrl, alt, shift, which, key));
doc.trigger(keypress(key));
}
you can use shortcut to trigger both keydown and keypress:
shortcut({ctrl: true, alt: true, which: 'r'});
in case you have listener that do different things (I have this in my tests for jQuery Terminal);
Native code:
function shortcut({chr, ctrlKey = false, altKey = false}) {
var lowerChr = chr.toLowerCase();
var upperChr = chr.toUpperCase();
var keydownCode = upperChr.charCodeAt(0);
var e = new KeyboardEvent("keydown", {
key: lowerChr,
code: "Key" + upperChr,
ctrlKey,
altKey,
keyCode: keydownCode,
which: keydownCode
});
var keypressCode = lowerChr.charCodeAt(0);
document.documentElement.dispatchEvent(e);
var e = new KeyboardEvent("keypress", {
key: lowerChr,
ctrlKey,
altKey,
charCode: keypressCode,
keyCode: keypressCode,
which: keypressCode
});
document.documentElement.dispatchEvent(e);
}
To answer your question straight-forward in 2024 using vanilla JS, I'm going to trigger a customized KeyboardEvent with your specific requirements.
function record_session() {
// Trigger customized keyboard event
document.documentElement.dispatchEvent(new KeyboardEvent('keydown', {
key: 'r', // Lowercase letter
code: 'KeyR', // Upppercase letter prefixed with "Key"
ctrlKey: true, // boolean, true means CTRL key is pressed
altKey: true // boolean, true means ALT key is pressed
}));
}
- Read more about the
key
property - Read more about the
code
property - Read more about the
ctrlKey
property - Read more about the
altKey
property - Check out all the available properties like the SHIFT key, for holding instead of single tap, etc.
The keyCode
property is deprecated so you no longer need to include it.
本文标签: twitter bootstrapHow to fire a keyboard shortcut function in JavaScriptStack Overflow
版权声明:本文标题:twitter bootstrap - How to fire a keyboard shortcut function in JavaScript? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744960404a2634618.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论