js判断键盘按键

以前在网上看书的时候,总是希望能有一个功能,当按"->"方向键时,可以自动跳转到下一章,今天终于实现了这个功能,顺便也掌握了js中判断键盘按键的方法.权以此文志之!

判断方法:

表 3. DHTML 键盘事件
名称说明

onkeypress

这个事件在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。

onkeyup

这个事件在用户放开任何先前按下的键盘键时发生。

onkeydown

这个事件在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生。

示例:

function document.onkeydown()
{
if ( event.keyCode=='39' ) //->右箭头
{
window.open("http://www.163.com");
}
}

functiondocument.onkeypress()
{
if(event.keyCode=='43')
{
alert('你输入了键盘的“+”键');
}
}

在使用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对主付键盘的数字键敏感。
http://liu2liu2.spaces.live.com/blog/cns!54B12917375EF5A0!270.entry

屏蔽组合键ctrl+N

<scriptlanguage=javascript>
functionKeyDown(){
if((window.event.altKey)&&
((window.event.keyCode==37)||//屏蔽Alt+方向键←
(window.event.keyCode==39))){//屏蔽Alt+方向键→
alert("不准你使用ALT+方向键前进或后退网页!");
event.returnValue=false;
}
if((event.keyCode==8)||//屏蔽退格删除键
(event.keyCode==116)){//屏蔽F5刷新键
event.keyCode=0;
event.returnValue=false;
}
if((event.ctrlKey)&&(event.keyCode==78)){//屏蔽Ctrl+n
event.returnValue=false;
}
if((event.shiftKey)&&(event.keyCode==121)){//屏蔽shift+F10
event.returnValue=false;
}
if(event.keyCode==122){//屏蔽F11
event.returnValue=false;
}
}

ASCII码

ASCII码键盘ASCII码键盘ASCII码键盘ASCII码键盘
27ESC32SPACE33!34"
35#36$37%38&
39'40(41)42*
43+44'45-46.
47/480491502
513524535546
55756857958:
59;60<61=62>
63?64@65A66B
67C68D69E70F
71G72H73I74J
75K76L77M78N
79O80P81Q82R
83S84T85U86V
87W88X89Y90Z
91[92\93]94^
95_96`97a98b
99c100d101e102f
103g104h105i106j
107k108l109m110n
111o112p113q114r
115s116t117u118v
119w120x121y122z
123{124|125}126~

参考文章

http://blog.youkuaiyun.com/javatwt/archive/2007/03/02/1519481.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值