电脑技术学习

js 判断键盘事件大全 兼容FireFox和IE(退格、制表、回车、空格、方向键、删除键等)

dn001

2.3 IE的实现方法

IE的程序不需要e变量,用window.event.keyCode来代替e.which,把键的索引值转化为真实键值方法类似:String.fromCharCode(event.keyCode),程序如下: ;;

   ; ; function keyDown() { ;;

      ; ; ;var keycode = event.keyCode; ;;

      ; ; ;var realkey = String.fromCharCode(event.keyCode); ;;

   ;    ; ; alert("按键码: " + keycode + " 字符: " + realkey); ;;

   ; ; } ;;

   ; ; document.onkeydown = keyDown;

2.4 判断浏览器类型

上面了解了在各种浏览器里是如何实现获取按键事件对象的方法,那么下面需要判断浏览器类型,这个方法很多,有比较方便理解的,也有很巧妙的办法,先说一般的方法:就是利用navigator对象的appName属性,当然也可以用userAgent属性,这里用appName来实现判断浏览器类型,IE和Maxthon的appName是“Microsoft Internet Explorer ,而FireFox和Opera的appName是“Netscape,所以一个功能比较简单的代码如下:

复制代码

   ; ; function keyUp(e) { ;;

   ; ;    if(navigator.appName == "Microsoft Internet Explorer")

   ; ; ;   {

   ; ; ;   ; ;  var keycode = event.keyCode; ;;

   ; ; ;   ; ;  var realkey = String.fromCharCode(event.keyCode); ;;

   ; ;    ; ;}else

   ; ;    ; {

   ; ;    ;    ; ;var keycode = e.which; ;;

   ; ;        ; var realkey = String.fromCharCode(e.which); ;;

   ; ;   ; ;}

   ; ;   ; alert("按键码: " + keycode + " 字符: " + realkey);;

   ;  };

   ; ; ;document.onkeyup = keyUp;

复制代码

比较简洁的方法是[2]:

复制代码

   ; ; ;function keyUp(e) {;

   ; ; ;   var currKey=0,e=e||event;

   ; ; ;  ; currKey=e.keyCode||e.which||e.charCode;

   ; ; ;  var keyName = String.fromCharCode(currKey);

   ; ; ;   alert("按键码: " + currKey + " 字符: " + keyName);;

   ; ; ; }

   ; ; ; document.onkeyup = keyUp;