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

标签 javascript keyboard-shortcuts

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

相关文章:

javascript - 如何使用 Gulp 在文件名前添加其父目录前缀?

keyboard-shortcuts - 在 Atom 编辑器中重新格式化代码?

keyboard-shortcuts - VS 2010 中有 'Generate stub' 的键盘快捷键吗?

tinymce - 如何在 TinyMCE v4 中实现tinymce.Shortcuts

python - PyQt QPlainTextEdit : How to replace right-click with key combination

android - 在 Android Studio 中附加调试器的快捷方式

javascript - .NET MVC 多路由问题

javascript - jquery.min.js 冲突

javascript - 我需要添加什么代码才能让这个 javascript 在文本末尾自动添加 3 个点?