zoukankan      html  css  js  c++  java
  • 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()就可以了,它帮你做到了兼容。

  • 相关阅读:
    c#读取.config文件内容
    c# 读取配置文件方法
    C# Log4net详细说明
    C# 运算符集
    LeetCode 69_ x 的平方根
    LeetCode 172 _ 阶乘后的零
    LeetCode 171 _ Excel表列序号
    LeetCode 88 _ 合并两个有序数组
    LeetCode 581 _ 最短无序连续子数组
    LeetCode 283 _ 移动零
  • 原文地址:https://www.cnblogs.com/jichi/p/10517079.html
Copyright © 2011-2022 走看看