加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

JavaScript Event学习第十一章:按键的检测

发布时间:2018-09-10 23:15:21 所属栏目:创业 来源:站长网
导读:检测用户的按键是变乱处理赏罚措施的一个很出格的环节。这一章我们出力办理一些很是棘手的题目,而且拟定一个完整的表格。 第一个题目是对付按键变乱来说基础就没有尺度,凭证类型说的:包括键盘等输入装备的变乱模子会在往后的DOM类型中作出表明。 正如我们了

检测用户的按键是变乱处理赏罚措施的一个很出格的环节。这一章我们出力办理一些很是棘手的题目,而且拟定一个完整的表格。

第一个题目是对付按键变乱来说基础就没有尺度,凭证类型说的:包括键盘等输入装备的变乱模子会在往后的DOM类型中作出表明。

正如我们相识到的,赏识器在最开始计划的时辰并没有一个尺度,各人都像做尝试似的,最后的制品固然是有效的,可是必定造成了兼容性的题目。按键题目也不破例:这里有两个属机能检测到用户按下了什么键,固然有足够的来由为什么必要两个属性,可是依然并不是全部的赏识器都支持。

其它,在keypress与keydown和keyup之间尚有一些很重要的区别。

最后就是windows和mac的区别了,在mac上要检测用户按下了什么键的确比在windows下难了N倍。

keyCode和charCode

能检测到用户按下了什么键的两个属性就是keyCode和charCode了。简朴说来:keyCode是用来检测用户真正按下了键盘上谁人键的,而charCode则是给出键入字符的ASCII码。有一些小题目必要留意:大写的A和小写的a的keyCode是一样的,由于他们在键盘上就是一个键;可是charCode纷歧样,由于他俩是两个差异的字符。

IE和Opera不支持charCode。然而他们会在keyCode内里生涯字符信息,可是只是在onkeypress的环境下,在onkeydown/up环境下包括的是键的信息。

字符和数字键

让我们以一个简朴的例子开始。小写a的ASCII码是97,大写的是65。那么在两种环境下,当用户在键盘上敲下沟通的键的时辰,什么时辰的键值是65呢(相等于大写的A)

keyCode

JavaScript Event进修第十一章:按键的检测 

charCode

JavaScript Event进修第十一章:按键的检测

因此,在onkeydown/up的环境下,你可以或许从keyCode内里获得键值。在onkeypress环境下,想要获得字符值就要行使:evt.charCode || evt.keyCode.

标点标记

我照旧抉择差池标点标记键做测试了。我猜疑这不只跟赏识器和操纵体系有关,还也许跟键盘配置和默认说话有关。我一样平常用的是荷兰语版的windows,假如跟美国版的101键的键盘对比有很大进出,我一点都不会觉自得外。

好比说shift+,键出来的应该是<,可是我测试的ASCII码的功效却是’?’的。当我发明白这个题目,我抉择照旧不在标点标记键的题目上挥霍时刻了.

出格键

成果键就是只那些不能打印出来的可是却具有必然成果的键。好比shift、ESC、enter等等都是成果键。

一些声名:

1、一样平常,mac的靠得住性比windows要差,有些键也许检测不到

2、IE不会触发下面这键的keypress变乱:delete, end, enter, escape, 成果键, home, insert, pageUp/Down 和 tab。

3、在onkeypress变乱下,Safari会给下面这些键给出很稀疏的keyCode值:delete, end, 成果键, home 和 pageUp.Down。可是在onkeydown/up下面就很正常。

4、Alt,Cmd,Ctrl和shfit键在mac上无法探测,不外Opera下面破例。然而你却可以行使altKey,ctrlKey,shfitKey这些属性。

假如你必要探测这些键,你就探测一下载onkeydown/up下面的keyCode就行了,算是给本身资助了,onkeypress和charCode就遗忘吧。

原文后头有个大的键值的列表,尚有一个测试框,有乐趣的童鞋可以移步。

翻译地点:http://www.quirksmode.org/js/keys.html
作者:北玉(tw:@rehawk)
文章出处:http://beiyu.cnblogs.com

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读