欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS监听组合按键思路及实现过程

程序员文章站 2022-06-25 12:50:06
前言我们经常用到组合键,例如alt+f4,crtl+enter。在开发中也会有这种需求。组合键类型单独组合,二键组合,三键组合思路1、获取键盘上的按键2、阻止浏览器上的默认行为3、执行自定义的js函数...

前言

我们经常用到组合键,例如alt+f4,crtl+enter。在开发中也会有这种需求。

组合键类型

单独组合,二键组合,三键组合

思路

1、获取键盘上的按键

2、阻止浏览器上的默认行为

3、执行自定义的js函数

代码例子

document.onkeydown = function(e) {
      var keycode = e.keycode || e.which || e.charcode;
      var altkey = e.altkey ;
      if(altkey && keycode == 112) {
        alert("组合键成功")
      }
      e.preventdefault();
      return false;
    }

解刨

e.keycode || e.which || e.charcode

谷歌浏览器对event.keycode,event.charcode和event.which都兼容。

火狐浏览器对event.keycode部分键值有效,如上下左右键(37,38,39,40),enter键(13),pgup(33),pgdn(34)等部分有效,对数字键,字母键无效。

event.which也是部分键值有效,如字母键,数字键,enter键,backspace键等有效,对上下左右键,pgup(33),pgdn(34)键无效。

event.charcode也是对部分键值有效,如字母键,数字键,,backspace键等有效,对enter键,上下左右键,pgup(33),pgdn(34)键无效。

ie浏览器中,ie8及以下浏览器对event.charcode无效,event.keycode和event.which对大部分键值能获得,但是有少部分也不能获得。

所以该写法为兼容写法。

e.altkey,e.shiftkey,e.ctrlkey,e.metakey

用来监听键盘上的alt,shift,ctrl,meta键。当按下这些键的时候,值会变为true。

e.preventdefault()

阻止默认事件,在w3c标准和ie下,处理方式不太一致。分别是执行e.preventdefault()方法和将e.returnvalue = false属性。当然如果你使用的jquery等类库的话,只需要写一个e.preventdefault()就可以了,它帮你做到了兼容。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。