用户在使用键盘时会触发键盘事件。“DOM2 级事件”最初规定了键盘事件,结果又删除了相应的内容。最终还是使用最初的键盘事件,不过 IE9 已经率先支持“DOM3”级键盘事件。

一、键码

  在发生 keydown 和 keyup 事件时,event 对象的 keyCode 属性中会包含一个代码,与键盘上一个特定的键对应。对数字字母字符集,keyCode 属性的值与 ASCII 码中对应小写字母或数字的编码相同。字母中大小写不影响。

<script type="text/javascript">
window.onload = function(){
document.onkeydown = function (evt) {
alert(evt.keyCode); //按任意键,得到相应的 keyCode
};
};
</script>

  不同的浏览器在 keydown 和 keyup 事件中,会有一些特殊的情况:在 Firefox 和 Opera 中,分号键时 keyCode 值为 59,也就是 ASCII 中分号的编码;而 IE和 Safari 返回 186,即键盘中按键的键码。

<script type="text/javascript">
window.onload = function(){
document.onkeypress = function (evt) {
alert(evt.keyCode); //按任意键,得到相应的 keyCode
};
};
</script>
</head>
<body>
<input type="button" value="按钮"/>
</body>

  如果用keypress返回keyCode,在火狐中所有的字符键都返回0,不是字符键没反应。Chrome,IE支持keypress返回keyCode,而且还支持大小写

二、字符编码

  Firefox、Chrome 和 Safari 的 event 对象都支持一个 charCode 属性,这个属性只有在发生 keypress 事件时才包含值,而且这个值是按下的那个键所代表字符的 ASCII 编码。

  此时的 keyCode 通常等于 0 或者也可能等于所按键的编码。IE 和 Opera 则是在 keyCode 中保存字符的 ASCII 编码。

<script type="text/javascript">
window.onload = function(){
document.onkeypress = function (evt) {
alert(evt.charCode); //按任意键,得到相应的字符编码
};
};
</script>
</head>
<body>
<input type="button" value="按钮"/>
</body>

最新文章

  1. replace U to T in mature.fa
  2. 干货分享:MySQL之化险为夷的【钻石】抢购风暴
  3. Delphi编译的程序,查看控件名称方法
  4. Beej网络socket编程指南
  5. 俄罗斯方块游戏JavaScript代码
  6. 模块化与MVC
  7. BZOJ 3729: Gty的游戏 [伪ETT 博弈论]【学习笔记】
  8. ctf学习(web题二)
  9. FFmpeg的一般流程
  10. 知名公司的GitHub地址
  11. [android] 手机卫士接收短信指令执行相应操作
  12. PHP获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址
  13. xtrabackup备份MySQL并主从同步
  14. elasticsearch 安装配置详解
  15. (转)spring hibernate properties详解
  16. vulcanjs schemas&amp;&amp; collections
  17. 释放Ubuntu/Linux系统cache,增加可用内存空间
  18. Vultr VPS建站攻略 – 一键安装宝塔面板架设LNMP/LAMP Web环境
  19. Gradle Goodness: Renaming Files while Copying
  20. 原生 JS 实现扫雷 (分析+代码实现)

热门文章

  1. hdu 3398
  2. 什么是“鸭子类型(duck typing)”?
  3. 测可用!ecshop立即购买和加入购物车按钮共存的方法
  4. CI 同时上传多个图片
  5. 编译android源码官方教程(5)编译完之后刷机、编译fastboot
  6. Android 4.4之后删除短信进行处理
  7. 双击Button按钮后执行的函数
  8. 重命名myclipse中web项目名称的过程
  9. Java面试宝典2015版
  10. CUBRID学习笔记 29 web管理中文语言文件 CUBRID教程