文档章节

javascript键盘事件_javascript

7LIB
 7LIB
发布于 2012/07/30 21:10
字数 592
阅读 739
收藏 5

[JavaScript]:e.which,e.charCode,e.keyCode

说明:

charCode:对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符码。对于 keydown 和 keyup 事件,它指定了被敲击的键的虚拟键盘码。虚拟键盘码可能和使用的键盘的布局相关。Internet Explorer 使用 event.keyCode 取回被按下的字符,而 Netscape/Firefox/Opera 使用 event.which。        

测试环境:

Internet Explorer 9.0.8112.16421 Firefax 9.0.1

Google Chrome 15.0.874.106 Safair 5.1 Opera 11.60

键盘事件:

在这3种事件类型中,keydown和keyup比较底层,而keypress比较高级。

keypress只能针对一些可以打印出来的字符有效,而对于功能按键,如F1-F12、Backspace、Enter、Escape、 PageUP、PageDown和箭头方向等,就不会产生keypress事件,但是可以产生keydown和keyup事件。然而在FireFox中,功能按键是可以产生keypress事件的。

e.which将给出该键的索引值,把索引值转化成该键的字母或数字值的方法需要用到静态函数String.fromCharCode()

在IE中,只有一个keyCode属性,并且它的解释取决于事件类型。对于keydown来说,keyCode存储的是按键码,对于 keypress事件来说,keyCode存储的是一个字符码。FireFox中keyCode始终为0,当keydown/keyup时,charCode=0,which为按键码。事件keypress时,which和charCode二者的值相同,存储了字符码。 在Opera中,keyCode和which二者的值始终相同,在keydown/keyup事件中,它们存储按键码,在keypress时间中,它们存储字符码,而charCode没有定义,始终是undefined。

 

浏览器

Internet Explorer 6/7/8

Firefox

Internet Explorer 9

Opera

Safari

Chrome

which undefined = = = = =
charCode undefined = = undefined = =
keyCode (√) 0 = = = =

 

 

/* @By :D.n.sky www.desetang.com */
function $A(s){
    return document.getElementById(s)?document.getElementById(s):s;
}
/* 输出 */
var viewKey = function (e){  
    var currKey=0,CapsLock=0;
    var e=e||event;
    currKey=e.keyCode||e.which||e.charCode;
    CapsLock=currKey >=65 && currKey <=90;
	var txt="type:"+e['type']
	       +"Current:"+String.fromCharCode(currKey)
		   +"Decimal:"+currKey
		   +"keyCode:"+e['keyCode']
		   +"which:"+e['which']
		   +"charCode:"+e['charCode']
		   +"大写:"+CapsLock
		   +"altKey:"+e['altKey']
		   +"ctrlKey:"+e['ctrlKey']
		   +"shiftKey:"+e['shiftKey']
		   +"repeat:"+e['repeat'];
     /* 美化 */
    txt=txt.replace(/(\d)/g,'<font color=#f00>$1</font>');
    $A('result').innerHTML=txt;
}
/* 关联事件 */
document.onkeypress= viewKey;

 

 推荐博文:

  1. 用类的概念写asp操作数据库类_asp
  2. 自己编写的ajax类_javascript
  3. AJAX核心XMLHttpRequest的属性和方法介绍_javascript
  4. 简单的php图片上传类_php
  5. 网页中的元素绑定/移除事件_javascript
  6. javascript获取元素css属性值_javascript
  7. 正则表达式验证数字/电话/手机/邮箱_javascript

 

 

© 著作权归作者所有

7LIB
粉丝 9
博文 10
码字总数 7250
作品 0
石家庄
程序员
私信 提问
Cocos2d-JS键盘事件

Cocos2d-JS中的键盘事件与触摸事件不同,它没有空间方面信息。键盘事件不仅可以响应键盘,还可以响应设备的菜单。 键盘事件是EventKeyboard,对应的键盘事件监听器(cc.EventListener.KEYBOA...

智捷课堂
2015/04/01
0
0
JS中onpropertychange事件和onchange事件区别

当一个HTML元素的属性用js改变的时候,都能通过 onpropertychange来捕获。例如一个 <input name="text1" id="text1" />对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onpro......

钟小华
2011/04/28
0
0
JavaScript零基础入门——(十三)JavaScript的事件

JavaScript零基础入门——(十三)JavaScript的事件 大家好,欢迎回到我们的JavaScript零基础入门。上一节课,我们了解了JavaScript定时器,也演示了一些比较经典的例子,其实我们已经用到了...

JandenMa
2018/07/01
0
0
20 款处理键盘事件的 JavaScript 库

键盘事件可以提高网站的易用性,提高用户与网站的交互体验,或者是页面需要通过键盘输入来触发事件。这些都非常有必要使用快捷键或者是键盘输入条目。 将这些事件处理整合到 HTML 文档中,通...

oschina
2014/03/05
8.2K
15
Cocos2d-JS事件处理机制

在很多图形用户技术中,事件处理机制一般都有三个重要的角色:事件、事件源和事件处理者。事件源是事件发生的场所,通常就是各个视图或控件,事件处理者是接收事件并对其进行处理的一段程序。...

智捷课堂
2015/03/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FPGA 设备 USB Platform Cable USB

lsusbFuture Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

MtrS
今天
4
0
lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念 数据库与缓存是服务端开发人员的必学知识点. 数据库 "数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数...

水果糖的小铺子
今天
6
0
Oracle分页查询语句的写法

Oracle分页查询语句的写法 Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,Oracle分页查询语句基本上可以按本文给出的格式来进行套用。   Oracle分...

康师傅
昨天
5
0
java并发图谱

1527
昨天
2
0
Mybatis之拦截器Interceptor

使用mybatis时用PageHelper进行分页,用到了PageInterceptor,借此了解下mybatis的interceptor。Mybatis的版本是3.4.6,MybatisHelper的版本是5.1.3。 1、PageInterceptor 先上一段代码,如下...

克虏伯
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部