说在Firefox和IE下取到的keyCode不一样,在FF下不区分大小写键。
http://www.dodo.hk/article.asp?id=369
修改了下测试,想回复一下的,结果提示字数太多贴不了,就写到这吧:)

测试结果
在IE下:
>> 支持keyCode
>> 不支持which和charCode,二者值为 undefined

在Firefox下:
>> 支持keyCode,除功能键外,其他键值始终为 0
>> 支持which和charCode,二者的值相同

在Opera下:
>> 支持keyCode和which,二者的值相同
>> 不支持charCode,值为 undefined

测试代码

  1. <script type="text/javascript">
  2. //By 枫岩@CnLei.Com
  3. function $(s){
  4. return document.getElementById(s)?document.getElementById(s):s;
  5. }
  6. function viewKeyInfo(e){
  7. var currKey=0,CapsLock=0;
  8. var e=e||event;
  9. currKey=e.keyCode||e.which||e.charCode;
  10. CapsLock=currKey >=65 && currKey <=90;
  11. $("type").innerHTML=e['type'];
  12. $("currKey").innerHTML=String.fromCharCode(currKey);
  13. $("Decimal").innerHTML=currKey;
  14. $("keyCode").innerHTML=e['keyCode'];
  15. $("charCode").innerHTML=e['charCode'];
  16. $("caps").innerHTML=CapsLock;
  17. $("shiftKey").innerHTML=e['shiftKey'];
  18. $("ctrlKey").innerHTML=e['ctrlKey'];
  19. $("repeat").innerHTML=e['repeat'];
  20. $("which").innerHTML=e['which'];
  21. }
  22. document.οnkeypress= viewKeyInfo;
  23. </script>
  24. <p>请按下任意键看测试效果:</p>
  25. type:<span id="type"></span><br />
  26. 当前Key:<span id="currKey"></span><br />
  27. Decimal:<span id="Decimal"></span><br />
  28. keyCode:<span id="keyCode"></span> <strong>注:在FF下,keyCode始终为0</strong><br />
  29. which:<span id="which"></span> <strong>注:在IE下,which始终为undefined ; 在Opera下,keyCode和charCode二者的值相同</strong><br />
  30. charCode:<span id="charCode"></span> <strong>注:在IE、Opera下,charCode始终为undefined ; 在FF下,which和charCode二者的值相同</strong><br />
  31. 大写:<span id="caps"></span><br />
  32. altKey:<span id="altKey"></span><br />
  33. ctrlKey:<span id="ctrlKey"></span><br />
  34. shiftKey:<span id="shiftKey"></span><br />
  35. repeat:<span id="repeat"></span><br />
  36. <style type="text/css" media="all">
  37. body {color:#999;font:normal 14px tahoma,宋体,Geneva,Arial,sans-serif;}
  38. span {color:#f00;font-weight:bold;padding:0 5px;}
  39. strong {color:#090;font-weight:normal;padding:0 5px;}
  40. </style>

<script type="text/javascript"><!-- google_ad_client = "pub-6770445892601887"; /* 468x60, 创建于 09-11-19 */ google_ad_slot = "4437639877"; google_ad_width = 468; google_ad_height = 60; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

关于键盘事件中keyCode、which和charCode 的兼容性测试相关推荐

  1. JS中常用的键盘事件与keycode属性

    JS中的键盘事件与keycode属性 键盘事件 键盘事件与鼠标事件类似,同样常出现在开发过程中. 简单介绍三个常见的键盘事件 keydown (识别所有键) keyup (识别所有键) keypres ...

  2. 键盘事件和keycode对照表

    键盘事件和keycode对照表 本次任务完成时间:2019年05月28日 作者:青青子衿 开发工具与关键技术:Visual Studio 2015 &&键盘事件和keycode对照表 ...

  3. js键盘事件中的键码对照表

      JS中的键盘事件经常用到,收集了键盘事件对应的键码来分享下: keyCode 对应按键 8 BackSpace BackSpace 9 Tab Tab 12 Clear 13 Enter 16 S ...

  4. android虚拟按键 判断,如何检测虚拟键盘事件中的Android用Delphi

    我不得不用键盘在tmemo同样的问题,尝试这两个函数和事件OnVirtualKeyboardShown和OnVirtualKeyboardHidden public { Public declarat ...

  5. wpf中键盘事件中KeyPressEventArgs.Handled 的用法(解决键盘事件默认操作)

    KeyPressEventArgs.Handled 属性 (键盘的默认操作就是改变焦点,键盘方法需要为控件设置焦点) 获取或设置一个值,该值指示是否处理过 KeyPress 事件. 属性值类型:Sys ...

  6. QML笔记-键盘事件中同时响应onDigitXXPressed与onPressed

    目录 背景 代码及演示 背景 在Keys.onDigitXXPressed信号与Keys.onPressed信号同时存在的时候,默认情况下往往只会触发Keys.onDigitXXPressed信号. ...

  7. Android电子牌外接USB读卡器读取内容模拟键盘事件

    最近做了一个Android外接USB读卡器刷手环读取数据,模拟键盘输入事件的项目; 借鉴了https://github.com/githubRonda/BarcodeScanner 连接电子牌板子调试 ...

  8. Qt使用键盘事件实现ESC键退出Halcon的绘图流程

    1.介绍 Halcon中的执行绘图算子draw_circlr或draw_rectangle1等算子在绘制图形时,单击鼠标左键进行绘图,点击右键确认图形,点击右键之前就进行等待动作,但是在MFC/Qt等 ...

  9. vue绑定键盘事件无效问题,vue绑定键盘delete事件示例,组合键绑定

    项目有个需求,点击某个组件,按delete健后删除,于是乎第一就是想到了键盘事件 @keyup.delete='deleteKeyup(e)' 可是按delete键试了半天都没反应,加了.native ...

最新文章

  1. DNS浅析-Bind软件的使用及搭建一个简单的DNS缓存服务器
  2. 格式化显示在Label控件中的金额格式文本 (2)
  3. 关于禁止程序重复启动的另一种需要与实现《转》
  4. 评分怎么读_英国留学本科中途被退学怎么申请硕士补救
  5. 【Linux】IPC-消息队列
  6. 三相全桥整流电路_三相桥式全控整流电路
  7. LeetCode 1570. 两个稀疏向量的点积(哈希)
  8. python批量合并csv_如何在Python中通过多个列合并两个CSV文件
  9. delphi bmp绘制矢量文件效率慢_聊一聊矢量瓦片的常识
  10. 信息学奥赛一本通(1162:字符串逆序)
  11. [Unity] ACT 战斗系统学习 7:使用 ScriptableObject 制作角色属性 2
  12. MongoDB索引案例一则
  13. 绝对干货:保险公司决策分析系统建设方案
  14. 常用排序算法的Java实现 - 1
  15. express获取参数的几种方法
  16. 0CTF-babyheap2017祥讲
  17. 【复习】Listening and Reading Comprehension
  18. 华为模拟器eNSP配置DHCP自动分配IP地址
  19. 想要顺利携号转网?让你少跑弯路的小贴士!
  20. C++开发斗地主(QT)第三篇之动画发牌与位置计算

热门文章

  1. 信息学奥赛一本通(2049:【例5.19】字符串判等)
  2. 求后序遍历(信息学奥赛一本通-T1339)
  3. 菲波那契数列(信息学奥赛一本通-T1188)
  4. 信息学奥赛一本通C++语言——1080:余数相同问题
  5. 25 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义利润分析码
  6. 转换uptime_句型转换
  7. hbase原理与实践_JAVA连接HBase客户端及HBase写入数据和读取数据原理解析
  8. 编译原理什么是移进规约冲突_我这个人不懂什么CPU,于是我用代码模拟出了一个...
  9. 浅谈Opencl之Image和Buffer 区别
  10. CSS自定义属性(CSS变量)