keyCode属性 – 学习画板

首页 » JavaScript » keyCode属性

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事件。

此文章发表在 JavaScript 标签为 . 将固定链接加入收藏.