1. 程式人生 > >鍵盤事件

鍵盤事件

put ret tor author ava val content 代碼分析 inner

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>js 按鍵記錄</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="羽殤仁">
<META NAME="Keywords" CONTENT="js 按鍵記錄">
<META NAME="Description" CONTENT="js 按鍵 記錄">
</HEAD>
<BODY>
<script type="text/javascript">
var keystring = "";//記錄按鍵的字符串
function $(s){return document.getElementById(s)?document.getElementById(s):s;}
function keypress(e)
{
  var currKey=0,CapsLock=0,e=e||event;
  currKey=e.keyCode||e.which||e.charCode;
  CapsLock=currKey>=65&&currKey<=90;
  switch(currKey)
  {
    //屏蔽了退格、制表、回車、空格、方向鍵、刪除鍵
    case 8: case 9:case 13:case 32:case 37:case 38:case 39:case 40:case 46:keyName = "";break;
    default:keyName = String.fromCharCode(currKey); break;
  }
  keystring += keyName;
}
function keydown(e)
{
  var e=e||event;
  var currKey=e.keyCode||e.which||e.charCode;
  if((currKey>7&&currKey<14)||(currKey>31&&currKey<47))
  {
    switch(currKey)
    {
      case 8: keyName = "[退格]"; break;
      case 9: keyName = "[制表]"; break;
      case 13:keyName = "[回車]"; break;
      case 32:keyName = "[空格]"; break;
      case 33:keyName = "[PageUp]"; break;
      case 34:keyName = "[PageDown]"; break;
      case 35:keyName = "[End]"; break;
      case 36:keyName = "[Home]"; break;
      case 37:keyName = "[方向鍵左]"; break;
      case 38:keyName = "[方向鍵上]"; break;
      case 39:keyName = "[方向鍵右]"; break;
      case 40:keyName = "[方向鍵下]"; break;
      case 46:keyName = "[刪除]"; break;
      default:keyName = ""; break;
    }
    keystring += keyName;
  }
  $("content").innerHTML=keystring;
}
function keyup(e)
{
  $("content").innerHTML=keystring;
}
document.onkeypress=keypress;
document.onkeydown =keydown;
document.onkeyup =keyup;
</script>
<input type="text" />
<input type="button" value="清空記錄" onclick="$(‘content‘).innerHTML = ‘‘;keystring = ‘‘;"/>
<br/>請按下任意鍵查看鍵盤響應鍵值:<span id="content"></span>
</BODY>
</HTML>

代碼分析:
$():根據ID獲取dom
keypress(e):實現對字符碼的截獲,由於功能按鍵要用keydown獲取,所以在keypress中屏蔽了這些功能按鍵。
keydown(e):主要是實現了對功能按鍵的獲取。
keyup(e):展示截獲的字符串。

鍵盤事件