JavaScript的事件对象_滚轮事件

用户在使用键盘时会触发键盘事件。“DOM2 级事件”最初规定了键盘事件,结果又删除了相应的内容。最终还是使用最初的键盘事件,不过 IE9 已经率先支持“DOM3”级键盘事件。

一、键码

  在发生 keydown 和 keyup 事件时,event 对象的 keyCode 属性中会包含一个代码,与键盘上一个特定的键对应。对数字字母字符集,keyCode 属性的值与 ASCII 码中对应小写字母或数字的编码相同。字母中大小写不影响。

<script type="text/javascript">
    window.onload = function(){
        document.onkeydown = function (evt) {
            alert(evt.keyCode); //按任意键,得到相应的 keyCode
        };
    };
</script>

  不同的浏览器在 keydown 和 keyup 事件中,会有一些特殊的情况:在 Firefox 和 Opera 中,分号键时 keyCode 值为 59,也就是 ASCII 中分号的编码;而 IE和 Safari 返回 186,即键盘中按键的键码。

<script type="text/javascript">
    window.onload = function(){
        document.onkeypress = function (evt) {
            alert(evt.keyCode); //按任意键,得到相应的 keyCode
        };
    };
</script>
</head>
<body>
    <input  type="button" value="按钮"/>
</body>

  如果用keypress返回keyCode,在火狐中所有的字符键都返回0,不是字符键没反应。Chrome,IE支持keypress返回keyCode,而且还支持大小写

二、字符编码

  Firefox、Chrome 和 Safari 的 event 对象都支持一个 charCode 属性,这个属性只有在发生 keypress 事件时才包含值,而且这个值是按下的那个键所代表字符的 ASCII 编码。

  此时的 keyCode 通常等于 0 或者也可能等于所按键的编码。IE 和 Opera 则是在 keyCode 中保存字符的 ASCII 编码。

<script type="text/javascript">
    window.onload = function(){
        document.onkeypress = function (evt) {
            alert(evt.charCode);         //按任意键,得到相应的字符编码
        };
    };
</script>
</head>
<body>
    <input  type="button" value="按钮"/>
</body>
原文地址:https://www.cnblogs.com/LO-ME/p/4592615.html