手机版

JavaScript事件学习第11章关键检测

时间:2021-10-24 来源:互联网 编辑:宝哥软件园 浏览:

第一个问题是击键事件根本没有标准。根据规范,包括键盘和其他输入设备的事件模型将在未来的DOM规范中进行解释。据了解,浏览器设计之初没有标准,大家好像都在做实验。虽然最终产品很有用,但它肯定会导致兼容性问题。关键问题也不例外:有两个属性可以检测用户按了什么键。虽然有足够的理由说明为什么需要两个属性,但并非所有浏览器都支持这两个属性。此外,按键和向下键以及向上键之间有一些重要的区别。最后,还有windows和mac的区别。检测用户在mac上按了什么键比在windows上难n倍。键码和字符码可以检测用户按了什么键的两个属性是键码和字符码。简单来说,键码是用来检测用户到底按了键盘上的哪个键,而字符码是给出键入字符的ASCII码。有一些小问题需要注意:大写A的键码和小写A一样,因为它们只是键盘上的一个键;但是charCode不同,因为它们是两个不同的字符。IE和Opera不支持CharCode。但是,它们会将字符信息保存在键码中,但仅在按下onkeypress的情况下,以及在按下onkeydown/up的情况下,它们包含键信息。和字母数字键。让我们从一个简单的例子开始。小写a的ascii码是97,大写a的ASCII码是65。在这两种情况下,当用户按下键盘上的同一个键时,键值65(相当于大写a)是什么时候的9500.163.com?

charCode

image

因此,在onkeydown/up的情况下,可以从keyCode获取键值。在onkeypress中,如果要获取字符值,应该使用:evt . charcode | | evt . key code evt . key code .标点符号我决定不测试标点符号键。我怀疑这不仅与浏览器和操作系统有关,还与键盘设置和默认语言有关。我通常使用荷兰版本的windows,如果它与美国版本的101键键盘有很大不同,我也不会感到惊讶。比如shift,键应该是,但是我测试的ASCII码竟然是“?”。当然。当我发现这个问题时,我决定不在标点符号键上浪费时间。特殊键功能键只是那些不能打印但有一定功能的键。例如,shift、ESC、enter等都是功能键。一些注意事项:1。一般mac的可靠性比windows差,有些按键可能检测不到。2.IE不会触发以下按键的按键事件:删除、结束、进入、退出、功能键、主页、插入、上/下翻页和制表符。3.在onkeypress事件下,Safari会给以下键赋予奇怪的keyCode值:删除、结束、功能键、主页和分页。向下但在向下/向上的情况下是正常的。4.在mac上检测不到Alt、Cmd、Ctrl和shfit键,Opera下除外。但是,您可以使用这些属性:altKey、ctrlKey和shfitKey。如果需要探测这些按键,只需探测onkeydown/up下面的键码,对自己有帮助。忘记按键和字符代码。原文后面有一大串键值,还有一个测试框。感兴趣的童鞋可以移动。翻译地址:http://www.quirksmode.org/js/keys.html转载请保留以下信息作者:北宇(tw:@rehawk)。

版权声明:JavaScript事件学习第11章关键检测是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。