javascript - 如何实现用户可自定义的键盘快捷键(在 javascript 中/在网络上)

标题说明了大部分内容。我想要一个 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
   }
};

要更新...

https://stackoverflow.com/questions/34039073/

相关文章:

Java 插件 - SonarQube 添加自定义规则

c++ - IUpdateSearcher 性能问题

jenkins - 在 Windows(64 位)的 jenkins 中安装 gitlab hook

javascript - 如何使 containsNode() 在 IE 中工作?

r - 升级 R/R Studio 后出现 fatal error (无效的事件开发人员路径)

css - 跨浏览器字体大小

java - 玩2.4,报错: package play. *不存在

java - 在运行时检查 Java 字节码是否包含调试符号

java - 为什么 Dagger 注入(inject)具体类?

maven - 当通过存储库访问父 pom 时,将忽略父 pom 中的