js获取按键兼容性详解

js获取键盘按下的键值有:event.keyCode、event.charCode和event.which。

其中:

谷歌浏览器:对event.keyCode、event.charCode和event.which都兼容。

火狐浏览器:对event.keyCode部分键值有效,如上下左右键(37,38,39,40),enter键(13),PgUp(33),PgDn(34)等部分有效,对数字键,字母键无效。

event.which也是部分键值有效,如字母键,数字键,enter键,Backspace键等有效,对上下左右键,PgUp(33),PgDn(34)键无效。

event.charCode也是对部分键值有效,如字母键,数字键,,Backspace键等有效,对enter键,上下左右键,PgUp(33),PgDn(34)键无效。

ie浏览器:IE8及以下浏览器对event.charCode无效,event.keyCode和event.which对大部分键值能获得,但是有少部分也不能获得。

网络查看说event.which 将 event.keyCode 和 event.charCode 标准化了。但实际还是有区别的。

所以一般都这样写兼容:

e.keyCode||e.which||e.charCode;

js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解

1.兼容ie和火狐的回车事件
function EnterPress(e){ //传入 event 
    var e = e || window.event; 
    if(e.keyCode == 13){ 
        //13代表回车符
        //TO_DO按下回车键后的动作
    } 
} 
2.JS监听某个DIV区域
$("#queryTable").bind("keydown",function(e){
        // 兼容FF和IE和Opera    
    var theEvent = e || window.event;    
    var code = theEvent.keyCode || theEvent.which || theEvent.charCode;    
    if (code == 13) {    
        //回车执行查询
            $("#queryButton").click();
        }    
});

你可能感兴趣的:(js获取按键兼容性详解)