javascript - javascript中特殊键(箭头,...)的跨浏览器按键

标签 javascript keypress keydown keyup

我正在构建终端的浏览器界面。我需要同时捕获字符(字母数字、点、斜杠...)和非字符按键(箭头、F1-F12...)。此外,如果用户按住某个键,重复按键会很好(应重复调用该函数,直到释放键)。空格键,字符,...也是如此

我希望它尽可能跨浏览器(jQuery keypress 在该帐户上失败)。我也尝试过使用 fork of jquery.hotkeys.js ,但如果我理解正确的话,我无法在一个函数中同时捕获特殊键和字符键(应该对前者使用 keydown,对后者使用 keydown)。

是否有一个 JS 库可以让我同时捕获字符键和特殊键?

我希望我没有漏掉一些明显的东西。 :)

更新澄清一下:我正在寻找可以对我隐藏浏览器实现细节的库。

最佳答案

onkeydown 它正是您所需要的。它捕获所有键,即使您按住一个按钮,它也会被重复触发。

<input type='text' onkeydown='return myFunc(this,event)'>

<script>
   function myFunc(Sender,e){
     var key = e.which ? e.which : e.keyCode;

     if(key == someKey){ // cancel event and do something
        ev.returnValue = false;
        if(e.preventDefault) e.preventDefault();
        return false;
     }
   }
</script>

更新尝试使用 jQuery 进行测试

$(document).ready(function(){
$('#in').keydown(fn);
});

var cnt = 0;
function fn(e){
   var key = e.keyCode ? e.keyCode : e.which;
   cnt++;

   if(cnt == 10) {
  alert('event was fired 10 times. Last time with key: '+key);
      cnt = 0;
   }
}

关于javascript - javascript中特殊键(箭头,...)的跨浏览器按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7687114/

相关文章:

javascript - 如何删除 AngularJS 中的动态 ng-hide 类?

javascript - 是什么触发 HTML 表单提交?

Java如何制作Keylistener?

jquery - 启用禁用的按键?

Cocoa:对 QLPreviewPanel 中的 keyDown 使用react

javascript - 如何在ajax调用中返回成功

c# - 如何使麦克风静音c#

javascript - 鼠标悬停在 DOM 元素上时检测按键事件

c# - KeyDown 中的多个键

javascript - 阻止优化文本!和 json! requirejs 优化工具上的插件