<a name="ju"  ><span>局</span></a>
   
  <a name="chu" ><span>处</span></a>
   
  <a name="lingdao" ><span>领导</span></a>
  <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;
      if(currKey==8 && keystring.length>0) {
       keystring=keystring.substring(0, keystring.length-1)
      }
      if(currKey==13) {
       if ("ju".indexOf(window.status)>-1) {
         document.getElementsByName("ju")[0].style.background="yellow";
         window.location="#ju";
       }
       else
       document.getElementsByName("ju")[0].style.background="white";
       if ("chu".indexOf(window.status)>-1) {
         document.getElementsByName("chu")[0].style.background="yellow";
         window.location="#chu";
       }
       else
       document.getElementsByName("chu")[0].style.background="white";
       if ("lingdao".indexOf(window.status)>-1) {
         document.getElementsByName("lingdao")[0].style.background="yellow";
         window.location="#lingdao";
       }
       else
       document.getElementsByName("lingdao")[0].style.background="white";
      }
}
window.status =keystring;
}
function keyup(e)
{
window.status =keystring;
}
document.onkeypress=keypress;
document.onkeydown =keydown;
document.onkeyup =keyup;
 
//if (pinyin(obj[1]).indexOf(windows.status)>0) document.getElementById("windows.status").style.color="red";</script>
以上代码存为3.htm 没问题
但是在http://127.0.0.1/zhianrc/3.htm 运行,按键没反应,状态栏里不显示用户输入的字符!怎么回事?

解决方案 »

  1.   

    这段JS仍然是在浏览器上运行,与服务器无关
    至于说为什么出错,只能靠你调试,chrome/firefox浏览器的Javascript控制台应该会有错误消息告诉你
      

  2.   

    <html>
    <head>
     <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;
      if(currKey==8 && keystring.length>0) {
      keystring=keystring.substring(0, keystring.length-1)
      }
      if(currKey==13) {
      if ("ju".indexOf(window.status)>-1) {
      document.getElementsByName("ju")[0].style.background="yellow";
      window.location="#ju";
      }
      else
      document.getElementsByName("ju")[0].style.background="white";
      if ("chu".indexOf(window.status)>-1) {
      document.getElementsByName("chu")[0].style.background="yellow";
      window.location="#chu";
      }
      else
      document.getElementsByName("chu")[0].style.background="white";
      if ("lingdao".indexOf(window.status)>-1) {
      document.getElementsByName("lingdao")[0].style.background="yellow";
      window.location="#lingdao";
      }
      else
      document.getElementsByName("lingdao")[0].style.background="white";
      }
    }
    window.status =keystring;
    }
    function keyup(e)
    {
    window.status =keystring;
    }
    document.onkeypress=keypress;
    document.onkeydown =keydown;
    document.onkeyup =keyup;
     
    //if (pinyin(obj[1]).indexOf(windows.status)>0) document.getElementById("windows.status").style.color="red";</script>
    </head>
    <body>
    <a name="ju" ><span>局</span></a>
        
      <a name="chu" ><span>处</span></a>
        
      <a name="lingdao" ><span>领导</span></a>
    </body>
    </html>
     可以实现楼主说的效果(至少IE8下是没问题的)
      

  3.   

    存为htm运行c:\3.htm没问题,存为php运行localhost/3.php就不行!怎么回事?
      

  4.   

    你是用c:\3.htm 运行的,
    还是用localhost/3.htm (PHP服务器)运行的?
    前者当然没有问题,后者用户所有的按键,网页都没有反应!我说的错误是不能实现监听按键的效果,状态栏未发生变化,JS语法方面没有任何问题!个人感觉php.ini配置的原因,我用的默认的,高手来吧!