javascript中的keyCode属性

发布时间:2020-01-12编辑:脚本学堂
本文介绍下,javascript中keyCode属性的用法,有需要的朋友参考下。

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

因此,数字键7的keyCode值为55,而字母A键的keyCode值为65——与Shift键的状态无关。
DOM和IE的event对象都支持keyCode属性。

例子:

var EventUtil = {
    getEvent: function (event) {
        return event ? event : window.event;
    },
    addHandler: function (element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    }
};
var textbox = document.getElementById("myText");
EventUtil.addHandler(textbox, "keyup", function (event) {
    event = EventUtil.getEvent(event);
    alert(event.keyCode);
});

以上例子中,用户每次在文本框中按键触发keyup事件时,都会显示keyCode的值。
无论是keydown或keyup事件都会存在一些特殊情况。

在Firefox和Opera中,按分号键时keyCode值为59,也就是ASII中分号的编码;但IE和Safari返回186,即键盘中按钮的键码。
在Safari3之前的版本中,上、下、左、右箭头和上、下翻页键返回大于63000的值。

在Opera9.5之前的版本中,会将非数字字母键的keyCde设置为等于相应字符的ASCII编码,因此小于键返回44而不是188。
在Safari3之前的版本中,不会因为按下了制表、上档、控制或替代键而触发keydown和keyup事件。