如何在JavaScript中启动键盘快捷键函数
How to fire a keyboard shortcut function in JavaScript?
我的网站上有一个记录功能。如果用户点击Ctrl+Alt+R 在下面的函数中<button type="submit" class="btn btn-primary" data-toggle="tooltip" data-placement="top" onclick="record_session()" title="Start Recording">Record</button>
function record_session(){
//how can i trigger or initiate ctrl+alt+r here??
}
如果使用jQuery,可以添加按键事件:
$(document).keypress(function(e) {
if (e.which === 114 && e.ctrlKey && e.altKey) {
record_session();
}
});
更新:
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
}
}
});
更新2
要激发键盘事件,可以使用以下命令:
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));
}
您可以使用快捷方式同时触发按键和按键:
shortcut({ctrl: true, alt: true, which: 'r'});
如果您有做不同事情的监听器(我在jQuery终端的测试中有这个);
本机代码:
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);
}
相关文章:
- 使用javascript为web应用程序自定义键盘快捷键
- 如何在JavaScript中启动键盘快捷键函数
- 如何使用javascript触发键盘快捷键(ctrl+alt+R)
- 使用键盘快捷键将文件上传到HTML5页面
- 适用于 Web 应用程序的可用键盘快捷键
- 有没有一种方法可以阻止IE中键盘快捷键的传播
- jQuery网站的键盘快捷键,焦点使用左键和右键转到上一个或下一个元素
- 是否有“”的键盘快捷键;暂停动画”;Chrome开发工具中的功能?(F12)
- 当文本字段或文本区域使用纯JavaScript聚焦时,禁用键盘快捷键
- 允许使用键盘快捷键,同时限制iframe中的字符
- Chrome扩展允许的键盘快捷键
- AppJs 键盘快捷键(复制、粘贴、剪贴板、退出、全选...
- 如何通过键盘快捷键访问菜单
- 在用户脚本中覆盖 Chrome 键盘快捷键
- Flex 禁用 Safari 键盘快捷键
- 如何为网站创建键盘快捷键
- 使用键盘快捷键捕获所选文本
- JavaScript 的键盘快捷键,在 Firefox 上无法正常工作
- 键盘快捷键不起作用
- "添加到手表“;铬键盘快捷键