zoukankan      html  css  js  c++  java
  • 检测键盘按键(三)——keypress和keydown、keyup

    keypress:在IE和chrome中主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符。

    在IE中Esc有值,Chrome中不能触发。

    FF都可以触发keypress,除了Alt、Ctrl、Shift键。

    keypress可以捕获组合键,比如当用户按下shift + 1时,keypress是对这个按键事件进行解析后返回一个可打印的“!”字符,而keydown只能

    输出1。

    对于屏幕可打印字符时,keypress是首选。

    keydown:通常可以捕获键盘除了PrScrn所有按键。不能判断单个字符的大小写。因此多用于捕获功能键。

    PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。

    <!DOCTYPE html>
    <HTML>
    <HEAD>
        <meta charset="utf-8">
    </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>
  • 相关阅读:
    为什么需要域驱动设计(DDD)?
    什么是无所不在的语言?
    什么是耦合?
    什么是 Spring Cloud?
    你更倾向用那种事务管理类型?
    您对微服务有何了解?
    微服务架构有哪些优势?
    微服务架构如何运作?
    @Qualifier 注解 ?
    JdbcTemplate ?
  • 原文地址:https://www.cnblogs.com/xjinza/p/3909065.html
Copyright © 2011-2022 走看看