我尝试用javascript听键盘的快捷键,如"命令+ shift + 4"
我目前的解决方案是:[在Mac上]
window.addEventListener('keypress', function(e){
if (e.shiftKey && e.metaKey && e.keyCode == 52) {
alert("Here it is.");
}
}, false);
但是由于快捷方式"命令+ shift + 4"是默认的"截图" Mac,所以javascript无法捕获它。如果我将52更改为53,则此代码有效,但它会监听"命令+ shift + 5"。
是否有一些解决方案让javascript听默认的Mac快捷方式?
答案 0 :(得分:3)
您的浏览器正在您的操作系统下运行。如果您在操作系统级别“捕获”按键事件并且不让它通过(想象e.stopPropagation()
),则无法在浏览器中捕获它。这就像你试图将某些内容绑定到Alt+F4
一样 - 这个事件在它到达浏览器的页面上事件之前就被处理了。有些可能会通过,有些可能不通过。
如果能够,请将快捷方式更改为独立于OS /浏览器的快捷方式。 避免使用these keyboard shortcuts。您也可以read this SO question.
要确保正确识别您的快捷方式,只需输入您的按键
即可window.onkeyup = function(e){
var pressed = "";
if(e.shiftKey){
pressed += " + Shift";
}else if(e.ctrlKey){
pressed += " + Ctrl";
} //and so on
pressed += e.keyCode;
console.log(pressed);
}