标题说明了大部分内容。我想要一个 javascript/html 解决方案,用于如何制作持久的、用户可配置的键盘快捷键监听器(加上任何关于如何实际保留首选项的好想法,如果你有的话)。
它看起来既简单又有点棘手:)
谢谢!
最佳答案
如果你想让用户获得像“Control”+(...)这样的快捷方式,你只需要捕获按下的键,所以检查“Control”是否在按下这些键的情况下被按下以执行操作。
这是一个简单但不好的例子:
var Pressed={
CTRL:false,
Spacebar:false
},Keyboard={ // an object containing Keyboard keys code
CTRL:17,
Spacebar:32
};
window.onkeydown=function(e){ // user started pressing an key (event)
var Key=(e.keyCode||e.which||e.key); // capture key pressed from event
if(Key==Keyboard.CTRL){ // CTRL is pressed
Pressed.CTRL=true
Pressed.Spacebar=false // CTRL has to be pressed before than Spacebar
}else if(Key==Keyboard.Spacebar){ // Spacebar is pressed
Pressed.Spacebar=true
}
if(Pressed.CTRL&&Pressed.Spacebar){ // Case CTRL+Spacebar are pressed
e.preventDefault(); // prevent Opera from quitting from the page
console.log("CTRL+Spacebar were pressed.")
}
},
window.onkeyup=function(e){ // event when an key is released
var Key=(e.keyCode||e.which||e.key); // capture key released from event
if(Key==Keyboard.CTRL){ // CTRL is released
Pressed.CTRL=false
}else if(Key==Keyboard.Spacebar){ // Spacebar is released
Pressed.Spacebar=false
}
};
要更新...
关于javascript - 如何实现用户可自定义的键盘快捷键(在 javascript 中/在网络上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34039073/