javascript实现组合键功能
2015-08-21 17:34
579 查看
因为input无法抓取ctrl,shift,alt事件所以
我通过页面window的event来获取这3个键,然后因为keypress会导致ALT+SHIFT加输入内容成为一个特殊字符,所以不能使用,本人新手,因为不知道为什么which获取到的F1值是“p”,所以我用keyCode转意了一下。希望大神们知道原因的告诉我怎么解决谢谢。如果大神们有好的实现方法希望能给予指导。
<html> <head> <meta charset="utf-8"> <script type="text/javascript" src="jquery-2.1.1.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("input").keydown(function(){ var preHotkey = isKeyPressed(event); var key = document.getElementById('myinput'); key.onkeyup = function(ev){ var nextKeyStr; if(ev.keyCode>111&&ev.keyCode<124){ nextKeyStr = transCodeToF(ev.keyCode); }else{ nextKeyStr = String.fromCharCode(ev.which); } preHotkey += nextKeyStr; //alert(ev.keyCode); //alert(String.fromCharCode(ev.which)); //alert(preHotkey); document.getElementById('myinput').value = preHotkey; ev.returnValue = false; } }); }); function isKeyPressed(event) { var hotKey = ""; if (event.shiftKey==1) { if(hotKey.length == 0){ hotKey = "shift+"; } else{ hotKey += "shift+"; } } else { if(hotKey.length == 0){ hotKey = ""; } else{ hotKey += ""; } } if (event.altKey==1) { if(hotKey.length == 0){ hotKey = "alt+"; } else{ hotKey += "alt+"; } } else { if(hotKey.length == 0){ hotKey = ""; } else{ hotKey += ""; } } if (event.ctrlKey==1) { if(hotKey.length == 0){ hotKey = "ctrl+"; } else{ hotKey += "ctrl+"; } } else { if(hotKey.length == 0){ hotKey = ""; } else{ hotKey += ""; } } hotKey; return hotKey; } function transCodeToF(code){ switch(code) { case 112: return "F1"; break; case 113: return "F2"; break; case 114: return "F3"; break; case 115: return "F4"; break; case 116: return "F5"; break; case 117: return "F6"; break; case 118: return "F7"; break; case 119: return "F8"; break; case 120: return "F9"; break; case 121: return "F10"; break; case 122: return "F11"; break; case 123: return "F12"; break; default: break; } } </script> </head> <body> Enter your name: <input type="text" id="myinput" /> </body> </html>
相关文章推荐
- 使用WebJar管理css、JavaScript文件
- json数据在前端(javascript)和后端(php)转换
- Servlet和JSP简单理解
- 认识JS
- Firebug折腾记_(3)JS调试小技巧
- Firebug折腾记_(3)JS调试小技巧
- JS 移动动画
- js算法:分治法-棋盘覆盖
- 细说javascript typeof操作符
- js this
- jsduck命令帮助
- 转:执行ajax加载页面中的js
- Javascript 执行环境及作用域
- 获取Json文件的方法
- js+正则+单双引号问题
- js实现类似trim函数
- javascript 的点击复制事件
- jsDuck的注释说明
- Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
- JavaScript 常见安全漏洞和自动化检测技术