日期:2014-05-16 浏览次数:20467 次
我们希望能用快捷键代替鼠标点击做一些事情,例如一个典型的应用就是论坛上常用的Ctrl + Enter 快捷发帖子。就以Ctrl+Enter快捷发帖子为例,实质上呢,就是通过JS脚本,捕获系统的onkeyup事件,判断event.ctrlKey是否为true并且event.keyCode为13,如果满足这个条件,那么就调用按钮对象的click()方法,等同于用鼠标去点击按钮。写个简单的示例代码:
<html> <head> <title> 快捷键提交示例代码</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <meta name="author" content="宝玉" /> <script language="JavaScript" type="text/javascript"> // 快捷键响应 // targetObj: 目标对象,如果满足快捷键条件,触发目标对象的click事件 // ctrlKey: 是否按住了Ctrl组合键 // shiftKey: 是否按住了Shift组合键 // altKey: 是否按住了Alt组合键 // keycode: 按键对应的数值 function Hotkey(event, targetObj, ctrlKey, shiftKey, altKey, keycode){ if ( targetObj && event.ctrlKey == ctrlKey && event.shiftKey == shiftKey && event.altKey == altKey && event.keyCode == keycode ) targetObj.click(); } function fnKeyup(event) { var b = document.getElementById("myButton"); Hotkey(event, b, true, false, false, 13); } // 捕获系统的Keyup事件 // 如果是Mozilla系列浏览器 if (document.addEventListener) document.addEventListener("keyup",fnKeyup,true); else document.attachEvent("onkeyup",fnKeyup); //--> </script> </head> <body> <form method="get" action="no.aspx"> <input type="submit" id="myButton"/> Ctrl + Enter </form> </body> </html>
?