JavaScript--获取键盘控制事件
来源:互联网 发布:淘宝返利网最高返36 编辑:程序博客网 时间:2024/06/06 14:19
获取键盘控制事件
document.onkeydown = keyDown
当浏览器读到这个语句时,无论按下键盘上的哪个键,都将呼叫KeyDown()函数。
不同浏览器的实现:
Netscape
Netscape程序中必须放一个特别的语句,来使Netscape始终去检查击键事件,如果没有这行语句,击键事件将与按下鼠标事件搞混。特别语句如下:
document.onkeydown = keyDown
if(ns4) document.captureEvents(Event.KEYDOWN)
keyDown()函数有一个隐藏的变量--一般的,我们使用字母“e”来表示这个变量:function keyDown(e)变量e表示发生击键事件,寻找是哪个键被按下,使用以下属性:e.which,这将给出该键的索引值,把索引值转化成该键的字母或数字值:String.fromCharCode(e.which)
把上面的语句放在一起,我们可以知道被按下的是哪一个键:
function keyDown(e) {
var keycode = e.which
var realkey = String.fromCharCode(e.which)
alert("keycode: " + keycode + " realkey: " + realkey)
}
document.onkeydown = keyDown
document.captureEvents(Event.KEYDOWN)
Internet Explorer
IE的程序与Netscape类似,但它不需要e变量,用window.event.keyCode来代替e.which,把键的索引值转化为真实键值方法类似:String.fromCharCode(event.keyCode),程序如下:
function keyDown() {
var keycode = event.keyCode
var realkey = String.fromCharCode(event.keyCode)
alert("keycode: " + keycode + " realkey: " + realkey)
}
document.onkeydown = keyDown
适用于两者的程序
用两种浏览器检查上述实例,你会发现执行结果不总是一样的,这是因为两种浏览器的键盘代码设置不相同,因此你必须使用单独的代码分别来写这段程序,而毫无别法。
建议你完全忘掉实际的键值,仅仅使用键盘的代码值来工作。下面这段程序将视情况而设置,如果是用IE的话,ieKey生效,把nKey设为0,如果是用Netscape的话,nKey生效,把nKey设为0,然后用一个警示框来显示两者的值:
function keyDown(e) {
if(ns4) {
var nKey=e.which;
var ieKey=0
}
if(ie4) {
var ieKey=event.keyCode;
var nKey=0
}
alert("nKey:"+nKey+" ieKey:" + ieKey)
}
document.onkeydown = keyDown
if(ns4) document.captureEvents(Event.KEYDOWN)
在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress、onkeydown、onkeyup三个事件进行出来。该三个事件的执行顺序如下:onkeydown -> onkeypress ->onkeyup。在一般情况下,采用三种键盘事件均可对键盘输入进行有效的响应。当在实际使用中,会发现这几者有些不同的差别。
onkeypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,onkeydown和onkeyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同,可以根据具体的情况选择不同的键盘事件。
由于onkeypress不能对系统功能键进行捕获,导致window.event对象的keyCode属性和onkeydown,onkeyup键盘事件中获取的keyCode属性不同,主要表现在onkeypress事件的keyCode对字母的大小写敏感,而onkeydown、onkeyup事件不敏感;onkeypress事件的keyCode无法区分主键盘上的数字键和付键盘数字键的,而onkeydown、onkeyup的keyCode对主付键盘的数字键敏感。
- JavaScript--获取键盘控制事件
- JavaScript获取键盘事件
- javascript的键盘控制事件
- javascript的键盘控制事件
- javascript的键盘控制事件
- JavaScript键盘事件全面控制详解
- Javascript键盘事件及输入控制
- JavaScript 获取键盘事件(键盘某个按键被按下)
- js 控制键盘事件
- c# 键盘控制事件
- 键盘事件获取键盘号码
- javascript 控制左右键盘
- Javascript 键盘事件
- javascript监听键盘事件
- javascript监听键盘事件
- javascript 捕获键盘事件
- javascript监听键盘事件
- javascript 键盘事件总结
- VBS基础篇 - 变量(6) - 数组变量
- 把以前写的几个Linux Framebuffer小工具放到github上了,直接去下吧,别找我要了
- 调用函数中手动分配的内存,如何在主函数中删除
- 继承子父类初始化及访问子父类方法及字段等问题
- 程序员生存定律--目录
- JavaScript--获取键盘控制事件
- fiddler的基本使用
- d3js做的星条图+源码。
- ubuntu14.04 安装中文输入法
- 图片批量转换成pdf
- 软件文档编写向导
- Bin文件转换到十六进制
- iphone编程--详解ios文件系统文件目录读写操作
- AH02432: Cannot find LB Method: byrequests