官方推荐用e.key来描述状态码,其他两种属性可能会在未来被废弃。
且key,keyCode和which 为只读属性
 
但是会有浏览器兼容性的问题,可以采用如下代码:
 
let key = '';
if (e.key) {
// onKeyDown,对应的e.key = ‘ArrowDown ArrowUp Enter’等
key = e.key;
} else {
let code = e.which || e.keyCode;
key = String.fromCharCode(code);
 
具体Key对应参考:

e.key && e.which && e.keyCode的更多相关文章

  1. 【KeyCode 键码】

    Key codes returned by Event.keyCode. These map directly to a physical key on the keyboard. KeyCode是由 ...

  2. javascript 火狐event.keyCode不能使用event is not defined

    在项目中,登录时需要enter按钮提交页面所以需要监听键盘输出 但是在火狐中不支持 event.code 所以换了中写法 1:form中加入时间传入event <form id="fr ...

  3. e.keyCode和e.which使用

    1. 不使用jquery获取keyCode var key = 'which' in e ? e.which : e.keyCode;//或者var key = e.which || e.keyCod ...

  4. 【Unity3D】 KeyCode 键码

    Key codes returned by Event.keyCode. These map directly to a physical key on the keyboard. KeyCode是由 ...

  5. js/jquery键盘事件及keycode大全

    js/jquery的键盘事件分为keypress.keydown和keyup事件 一.键盘事件 1.keydown()事件当按钮被按下时,发生 keydown 事件. 2.keypress()事件ke ...

  6. 常用JavaScript触发事件

    事件句柄 onclick=JavaScript:鼠标单击某个对象.3 ondblclick=JavaScript:鼠标双击某个对象.3 onmousedown=JavaScript:某个鼠标键被按下. ...

  7. 日常工作bug总结

    1.在使用jQuery的text()与val()使用时,如果按钮是<button></button>的形式使用text()写入时,在IE8下会出现延迟,即我在写定时器5秒倒计时 ...

  8. 基于jquery的bootstrap在线文本编辑器插件Summernote

    Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线编辑器.Summernote非常的轻量级,大小只有30KB,支持Safari,Chrome,Firefox.Op ...

  9. 用JS写了一个打字游戏,反正我是通不了关

    今天想写个简单的游戏, 打字游戏好像都没写过, 那么就写打字游戏吧, gamePad包含了关卡的信息, 可以用来调整给个关卡字符下落的速度: getRandom函数会返回一个字符对象, 这个对象包含了 ...

随机推荐

  1. JavaScript在执行代码之前会校验代码,声明变量提前至当前作用域最前面。

    var name = 123; function getName(){ console.log(name); } getName(); 输出123 -------------------------- ...

  2. java深入探究07-jdbc下

    1.BeanUtils组件 1)使用:导入commons-beanutils-1.8.3.jar核心包,日志支持包: commons-logging-1.1.3.jar 缺少日志的jar文件报错:ja ...

  3. 学习docker可能会用到的参考

    局域网部署Docker--从无到有创建自己的Docker私有仓库 http://lib.csdn.net/base/docker 正在刷(学习)一遍官方文档,上面是一些其他可能用到的资料,是在解决自己 ...

  4. BZOJ 1010 [HNOI2008]玩具装箱toy:斜率优化dp

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1010 题意: 有n条线段,长度分别为C[i]. 你需要将所有的线段分成若干组,每组中线段的 ...

  5. node.js+express+jade系列四:jade嵌套的使用

    jade是express自带的模板引擎 jade文件可以嵌套使用,include引用外部jade文件,extends引用jade模板 例如 有一个主jade文件layout.jade,引用top.ja ...

  6. C#中string.Empty、""和null 之间的区别

    1.C#中string.Empty.""和null 之间的区别 (http://blog.csdn.net/henulwj/article/details/7830615)

  7. http接口测试框架-python

    简单分解一下 接口测试框架设计: 主入口 -> 遍历接口/用例 -> 发送请求+接收响应 ->结果的对比 -> 生成报告 ->发送email 分成几大类:主入口的py文件 ...

  8. Log4j_学习_00_资源帖

    一.log4j2 1. log4j使用教程详解(怎么使用log4j2) 2.Log4j2的基本使用 二.log4j 1.[转]最详细的Log4J使用教程 2.最详细的Log4j使用教程 3.log4j ...

  9. hdu-5652 India and China Origins(二分+bfs判断连通)

    题目链接: India and China Origins Time Limit: 2000/2000 MS (Java/Others)     Memory Limit: 65536/65536 K ...

  10. asp.net中日志框架Log4Net的使用

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...