前言

我们经常用到组合键,例如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()就可以了,它帮你做到了兼容。

java监听组合按键_js监听组合按键相关推荐

  1. Android学习按键事件监听与Command模式

    Android学习按键事件监听与Command模式 - Dufresne - 博客园 Android学习按键事件监听与Command模式 一 Command模式 意图: 将一个请求封装为一个对象,从而 ...

  2. Java中使用JNA实现全局监听Linux键盘事件

    title: Java中使用JNA实现全局监听Linux键盘事件 date: 2019-05-03 19:08:00 Java中使用JNA实现全局监听Linux键盘事件 用JNA实现的键盘监听,在Wi ...

  3. Java中使用JNA实现全局监听Windows键盘事件

    title: Java中使用JNA实现全局监听Windows键盘事件 date: 2019-05-02 21:55:00 Java中使用JNA实现全局监听Windows键盘事件 前言: 一直打算做一个 ...

  4. Android Home键按键事件监听

    平时用的比较多的是Back键按键的监听,但是后来修改相机问题时遇到了需要监听Home键的情况,遂各种搜索资料,get到如下技能: Home键的监听也需要注册广播接收器(采用动态注册的方式),通过拦截让 ...

  5. ionic3开发系列——实现对手机软件键盘按键的监听

    最近开发项目,上级boss给出的一个需求是:在input输入框输入值后,点击手机软件键盘的确认键之后对文本框中的值进行下一步的操作. 百度了好多都没有找到关于ionic3相关的教程或者解决办法, 看到 ...

  6. java监听oracle aq,JMS监听Oracle AQ

    该文档中,oracle版本为11g,jdk版本1.8,java项目使用maven构建,并使用了定时任务来做AQ监听的重连功能,解决由于外部原因导致连接断裂之后,需要手动重启项目才能恢复连接的问题 一. ...

  7. Java 创建事件Event、事件监听EventListener、事件发布publishEvent

    一.概述 个人认为,事件机制一般可由:事件源source,事件对象Event,事件监听EventListener,事件发布publishEvent组成 事件源:引起事件发生的源: User用户信息, ...

  8. 使用swipecard实现卡片视图左右滑动监听以及点击监听

    使用swipecard实现卡片视图左右滑动监听以及点击监听  前言: 大家好,今天给大家介绍安卓一种特别实用有很酷炫的组件swipecard,当然这并不是安卓爸爸创造的,这是国内的一个我认为是大牛的一 ...

  9. JavaGUI编程 -- 窗口监听事件和键盘监听事件(AWT)

    1. JavaGUI编程之窗口监听事件和键盘监听事件(AWT) 1.1 窗口监听事件: 示例代码: package GUI.TestWindow;import java.awt.*; import j ...

最新文章

  1. [译] Vue.js 优雅地集成第三方 JavaScript
  2. linux 安装 celluloid 视频播放器
  3. msm8974 camera driver添加新摄像头kernel hal修改
  4. 491. 递增子序列(回溯算法)
  5. jdbctemplate 开启事务_Spring(四):事务管理
  6. Xilinx Altera FPGA中的逻辑资源(Slices VS LE)比较
  7. elisa标准曲线怎么做_如何拟合Elisa标准曲线
  8. 《秘密》之你的秘密和生命的秘密
  9. python飞机大战实训报告200_飞机大战实训报告方案.doc
  10. undolog实现事务原子性,redolog实现事务的持久性
  11. 控制台报错For input string: ““、empty String
  12. 移动端web界面开发
  13. Hibernate中的sessionFactory是做什么用的?
  14. photoshop cc2017全套视频课程 从基础到实战案例PS海报-王诚-专题视频课程
  15. ISP算法----基本DPC算法实现代码
  16. 办公室计算机oa,办公自动化oa是计算机
  17. china.js实现中国地图
  18. PHP开发群控,玩客云改群控的试玩体验,群控插件开发原来如此简单
  19. 计算机操作系统(第四版)
  20. 资源共享(好东西,要分享)

热门文章

  1. 结构化场景中的RGB-D SLAM
  2. ATS无法缓存QQ音乐的音频文件问题
  3. Prometheus+Granfana
  4. SQL Server基础操作(此随笔仅作为本人学习进度记录七 !--存储过程)
  5. 关于eclipse的注释和反注释的快捷键
  6. 强化学习(七)时序差分离线控制算法Q-Learning
  7. Codeforces Round #372 (Div. 2), problem: (B) Complete the Word
  8. 使用 TFDConnection 的 pooled 连接池
  9. 【CLR的执行模型:将源代码编译成托管模块】
  10. 我的.net程序为何不能执行?