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;