JS 网页快捷键设置

我们希望能用快捷键代替鼠标点击做一些事情,例如一个典型的应用就是论坛上常用的Ctrl + Enter 快捷发帖子。就以Ctrl+Enter快捷发帖子为例,实质上呢,就是通过JS脚本,捕获系统的onkeyup事件,判断event.ctrlKey是否为true并且event.keyCode为13,如果满足这个条件,那么就调用按钮对象的click()方法,等同于用鼠标去点击按钮。写个简单的示例代码:

Html代码 复制代码  收藏代码
  1. <html>  
  2. <head>  
  3.    <title> 快捷键提交示例代码</title>  
  4.    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  5.    <meta name="author" content="宝玉" />  
  6. <script language="JavaScript" type="text/javascript">  
  7. // 快捷键响应    
  8. // targetObj: 目标对象,如果满足快捷键条件,触发目标对象的click事件   
  9. // ctrlKey: 是否按住了Ctrl组合键   
  10. // shiftKey: 是否按住了Shift组合键   
  11. // altKey: 是否按住了Alt组合键   
  12. // keycode: 按键对应的数值   
  13. function Hotkey(event, targetObj, ctrlKey, shiftKey, altKey, keycode){   
  14. if (   
  15.    targetObj   
  16.    && event.ctrlKey == ctrlKey    
  17.    && event.shiftKey == shiftKey    
  18.    && event.altKey == altKey    
  19.    && event.keyCode == keycode   
  20.    )   
  21.    targetObj.click();   
  22. }   
  23.   
  24. function fnKeyup(event)   
  25. {   
  26. var b = document.getElementById("myButton");   
  27. Hotkey(event, b, true, false, false, 13);   
  28. }   
  29.   
  30. // 捕获系统的Keyup事件   
  31. // 如果是Mozilla系列浏览器   
  32. if (document.addEventListener)   
  33. document.addEventListener("keyup",fnKeyup,true);   
  34. else   
  35. document.attachEvent("onkeyup",fnKeyup);   
  36.   
  37. //-->  
  38. </script>  
  39. </head>  
  40. <body>  
  41. <form method="get" action="no.aspx">  
  42. <input type="submit" id="myButton"/>  
  43. Ctrl + Enter   
  44. </form>  
  45. </body>  
  46. </html>  
  1. <html>  
  2. <head>  
  3.    <title> 快捷键提交示例代码</title>  
  4.    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  5.    <meta name="author" content="宝玉" />  
  6. <script language="JavaScript" type="text/javascript">  
  7. // 快捷键响应   
  8. // targetObj: 目标对象,如果满足快捷键条件,触发目标对象的click事件  
  9. // ctrlKey: 是否按住了Ctrl组合键  
  10. // shiftKey: 是否按住了Shift组合键  
  11. // altKey: 是否按住了Alt组合键  
  12. // keycode: 按键对应的数值  
  13. function Hotkey(event, targetObj, ctrlKey, shiftKey, altKey, keycode){  
  14. if (  
  15.    targetObj  
  16.    && event.ctrlKey == ctrlKey   
  17.    && event.shiftKey == shiftKey   
  18.    && event.altKey == altKey   
  19.    && event.keyCode == keycode  
  20.    )  
  21.    targetObj.click();  
  22. }  
  23.   
  24. function fnKeyup(event)  
  25. {  
  26. var b = document.getElementById("myButton");  
  27. Hotkey(event, b, true, false, false, 13);  
  28. }  
  29.   
  30. // 捕获系统的Keyup事件  
  31. // 如果是Mozilla系列浏览器  
  32. if (document.addEventListener)  
  33. document.addEventListener("keyup",fnKeyup,true);  
  34. else  
  35. document.attachEvent("onkeyup",fnKeyup);  
  36.   
  37. //-->  
  38. </script>  
  39. </head>  
  40. <body>  
  41. <form method="get" action="no.aspx">  
  42. <input type="submit" id="myButton"/>  
  43. Ctrl + Enter  
  44. </form>  
  45. </body>  
  46. </html> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值