聊聊KeyCode被弃用后的问题
关于KeyCode被弃用后的问题
目前在开发是会发现,键盘事件的event事件对象的keyCode=“ASCll码值”已经被弃用了,但是大部分情况是不影响使用的,但是为了避免不必要的麻烦,还是建议大家依据实际情况做选择。
解决方法
document.onkeyup = function(event) {
event = window.event || event;
// 新方法
if (event.key == 'p') {
alert("按下了p键");
}
// 旧方法
if (event.keyCode == 80) {
alert("按下了p键");
}
}
简单来说就是将
keyCode=“键盘的ASCLL码值”,例 keyCode=“80”、keyCode="76"等
改为
key=“键盘的字母内容”,例 key=“a”、key=“Alt”、key="Enter"等
个人感觉,简洁了许多。
按键事件中的keycode被弃用,改用e.code替代
js事件中,keyCode已废弃,最佳替代写法为e.code
也有用e.key写法的,但是这种写法不够准确,
比如你按键盘上的左右两边的Ctrl键,e.key都是Ctrl,
而e.code会明确写出来是CtrlLeft还是CtrlRight
再比如,在键盘上敲击空格键,key和code就有明显的区别了:

示例:
document.onkeydown = function(e) {
console.log('code: ', e.code);
}
参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/KeyboardEvent/keyCode
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
JavaScript 嵌套函数指向this对象错误的解决方法
JavaScript对于全局函数内的this绑定为全局对象,而对于嵌套函数也采用了相同的解释。2010-03-03
js createRange与createTextRange的一些用法实例
关于createTextRange和createRange的一些用法,脚本之家增强版。2010-05-05
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
这篇文章主要介绍了BootStrap点击下拉菜单项后显示一个新的输入框实现代码的相关资料,需要的朋友可以参考下2016-05-05


最新评论