聊聊KeyCode被弃用后的问题
作者:阿松爱睡觉
今天咱们就来聊聊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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。