charCode与keyCode的区别

转自:https://www.cnblogs.com/gongshunkai/p/5861471.html

在标准浏览器下获取键盘按键我们可以使用e.which,但是非标准下没有这个属性,所以大部分情况下用keyCode,但是这是存在兼容性问题的。我们来看下他两的区别:

onkeydown: e.keyCode  有值

onkeyup: e.keyCode 有值

onkeypress: e.keyCode 为0

onkeydown: e.charCode  为0

onkeyup: e.charCode 为0

onkeypress: e.charCode 有值

结论:charCode 返回onkeypress事件触发键值的字母代码。

         keyCode 返回 onkeydown 或 onkeyup 事件的键的代码。

做一下兼容处理:

function myFunction(e) {
    e || (e = window.event);
    if(e.which == null){
        e.which = e.charCode != null ? e.charCode : e.keyCode;
    }
}
原文地址:https://www.cnblogs.com/sharpest/p/10161355.html