javascript 捕获键盘事件

CtrlTab.js:具有多个按键检测功能的按键绑定库可为您的应用添加快捷方式 概要 CtrlTab.js是具有多个击键检测功能的快捷键绑定库。 安装 npm $ npm install @dwtechs/ctrltab 纱 $ yarn add @dwtechs/ctrltab 用法 ES6 import { Keyboard } from "@dwtechs/ctrltab" ; let keyboard = new Keyboard ( ) ; keyboard . addCmd ( "action0" , null , [ 32 ] , action0 , { preventDefault : true , groupName : "group1" , repeat : true } ) ; keyboard . addCmd ( "action1" , { ctrl : true } , [ "G" ] , action1 , { 立即下载
在很多应用中,用户都希望WEB应用能够在界面上支持一些快捷键,最常见的就是上下左右、TAB、回车等的快捷键支持。抛开在页面上运行Applet、Flash 的方式来对键盘快捷键支持外,利用JavaScript也能够有出色的表现。
在对键盘时间的支持上,操作系统提供了一整套的虚拟键键值,要使我们的应用能够很好的支持快捷键,了解这些键值是必不可少的。
现将常见的键值列举如下:

A 0X65                            U 0X85
B 0X66                            V 0X86
C 0X67                            W 0X87
D 0X68                            X 0X88
E 0X69                            Y 0X89
F 0X70                            Z 0X90
G 0X71                            0 0X48
H 0X72                            1 0X49
I 0X73                            2 0X50
J 0X74                            3 0X51
K 0X75                            4 0X52
L 0X76                            5 0X53
M 0X77                            6 0X54
N 0X78                            7 0X55
O 0X79                            8 0X56
P 0X80                            9 0X57
Q 0X81                            ESC 0X1B (int=27)
R 0X82                            CTRL 0X11
S 0X83                            SHIFT 0X10
T 0X84                            ENTER 0XD(用十进制就是13)

还有方向键:
← 37                             →  39
F1键 112                         F2键  113
F3键 114                         F4键  115
F5键 115                         F6键  116
F7键 117                         F8键  118
F1键 119                         F4键  110
退格删除键  8                     TAB键  40

通常,快捷键的支持都是在整个Document对象内部都有效的。因此,在声明脚本时可以采用以下方式:
 
<script language="javascript" for="document" event="onkeydown">
 
这样,在整个Document对象内部,你所声明的其内所有的脚本都会生效。因此,如果你需要做的处理都比较简单的话,你也不必要使用function来处理。这种方式或许会更加有效。
为了能够更好的支持虚拟键,JavaScript还对一些常用控制键进行了更进一步的封装,这些键有:Ctrl键、Shift键、Alt键等,对应的操作指令分别为:
 
window.event.ctrlKey
window.event.shiftKey
window.event.altKey
 
 
举个简单的例子:如果我们要在页面上将Enter键和Tab键都屏蔽成将光标向下一个表单元素移动,那么可以加入以下代码:
js 代码
  1. if(event.keyCode==13 || event.keyCode==40){    
  2.     event.keyCode=9;    
  3.     CurTabIndex=event.srcElement.tabIndex+1//将当前tabindex的值加1    
  4.     for (n=0;n<insert.elements.length;n++)    
  5.     {    
  6.         if (insert.elements[n].tabIndex==CurTabIndex) //找到下一个表单元素    
  7.         {    
  8.         insert.elements[n].focus(); //移动焦点    
  9.         return true;    
  10.         }    
  11.     }    
  12.   }   
但是,你很快就会发现,上面的代码只有在 IE 上有效,而在 Netscape 上却怎么也得不到你想要的结果,原因是 Netscape 和 IE 在对键盘事件的JS支持上是不同的。对于类似于:event.keyCode 这样的东西只有IE才能够支持,而在 Netscape 上,则采用e.which ,因此,如果你的应用需要支持多浏览器版,需要做的在这里也许仅仅是用e.which 来代替 window.event.keyCode 。
用两种浏览器检查上述实例,你会发现执行结果不总是一样的,这是因为两种浏览器的键盘代码设置不相同,因此你必须使用单独的代码分别来写这段程序(行业垄断和竞争的悲剧呀!--痛苦的可是我们这帮程序员呀......)。
以下是一个在网路上找到的对 IE 和 Netscape 进行分别处理的小程序,通过这段代码可以很容易看出两个浏览器的不同处理方式:
js 代码
  1. function init() {     
  2.    if (ns4) block = document.blockDiv     
  3.    if (ie4) block = blockDiv.style     
  4.    block.xpos = parseInt(block.left)     
  5.    block.active = false     
  6.    document.onkeydown = keyDown     
  7.    document.onkeyup = keyUp     
  8.    if (ns4) document.captureEvents(Event.KEYDOWN | Event.KEYUP)     
  9.  }     
  10.  function keyDown(e) {     
  11.    if (ns4) {var nKey=e.which; var ieKey=0}     
  12.    if (ie4) {var ieKey=event.keyCode; var nKey=0}     
  13.    if ((nKey==97 || ieKey==65) && !block.active) { // if "A" key is pressed     
  14.      block.active = true slide()     
  15.    }     
  16.  }     
  17.  function keyUp(e) {     
  18.    if (ns4) {var nKey=e.which; var ieKey=0}     
  19.    if (ie4) {var ieKey=event.keyCode; var nKey=0}     
  20.    if (nKey==97 || ieKey==65) {     
  21.    block.active = false // if "A" key is released     
  22.    }     
  23.  }     
  24.  function slide() {     
  25.     if (block.active) {     
  26.      block.xpos += 5     
  27.      block.left = block.xpos     
  28.      status = block.xpos // not needed, just for show     
  29.      setTimeout("slide()",30)     
  30.     }     
  31.  }    
RPN 解析 RPN全称是Region Proposal Network,Region Proposal的中文意思是“区域选取”,也就是“提取候选框”的意思,所以RPN就是用来提取候选框的网络; 1. RPN的意义 RPN第一次出现在世人眼中是在Faster RCNN这个结构中,专门用来提取候选框,在RCNN和Fast RCNN等物体检测架构中,用来提取候选框的方法通常是Selective Se 阅读详情

相关推荐

先进封装技术的一些优缺点探讨

半导体封装技术是半导体制造过程中的关键环节,它不仅保护了芯片免受物理损伤,还提供了电气连接和散热功能。随着技术的发展,出现了多种先进的封装技术,每种技术都有其特定的应用场景和优缺点。

阿拉伯梳子的专栏 2170

JS捕获页面按键事件

JS捕获页面按键事件 有时候我们需要捕获页面上的按键(如回车键)事件,以达到一些特殊效果,例如在登录页面用户输入完登录名和密码后习惯直接敲回车,这时需要捕获回车事件。 浏览器通过keyCode属性可以获取按键代码。 document对象的按钮弹起事件(捕获按下事件也可以),浏览器会将用户按下的按键信息对象传递到事件回调函数中(以参数的形式),传入函数中的这个按键信息中包含了一个用来识别按键的编号(每个按键都有一个对应的编号)。 例1、模拟输入后回车验证 <!DOCTYPE ht

cnds123的专栏 3516

Vivado加上VsCode让你的生活更美好

VsCode与Vivado的灵活使用 引言 ​ 现在大二了,在接触硬件描述语言。Vivado自带的编辑器实在很难用,为了能够“极客”一些,当然是去Google了一下有哪些方法可以取而代之。 ​ 网络上的答案大同小异,基本上都是用的Sublime Text.(我的学长们也几乎都是) 平时码代码的过程中,我习惯与使用VsCode,尤其是在微软收购GitHub之后,Code 简直就是神器了。于是乎…一个...

qq_39498701的博客 10万+

利用Javascript脚本捕获键盘事件

在很多应用中,用户都希望WEB应用能够在界面上支持一些快捷键,最常见的就是上下左右、TAB、回车等的快捷键支持。抛开在页面上运行Applet、Flash 的方式来对键盘快捷键支持外,利用JavaScript也能够有出色的表现。 在对键盘时间的支持上,操作系统提供了一整套的虚拟键键值,要使我们的应用能够很好的支持快捷键,了解这些键值是必不可少的。 现将常见的键值列举如下: A 0X65     ...

甘谷天蚕网络技术有限公司 249

保姆级教程:手把手教你用CANoe/CANalyzer读取汽车故障码(UDS 0x19服务实战)

本文提供了一份详细的CANoe/CANalyzer使用教程,指导如何通过UDS 0x19服务读取汽车故障码。从硬件配置到报文构建,再到故障码解析,手把手教你完成汽车诊断全流程,特别适合汽车电子工程师和诊断开发人员。

weixin_42524945的博客 260

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1094

动态HTML创作之捕捉键盘

捕捉键盘可能是与用户交互中最有力的形式了。可以设置按下或释放任何的键来控制对象。 第一件事就是怎样初始化事件。这里是基本的初始化设置“onkeydown”事件: document.onkeydown=keyDown 当这个代码被加入后,浏览器就知道当键盘被按动时,keyDown()函数将调用。无论调用什么函数都没有关系,并且,在函数名后不必跟上括号。要捕捉哪个键被按下,两种浏览器有些细

派的无理性 3370

安川机器人SOCKET 通讯

命令 功能 参数 示例 返回 SelectJob 选择程序 JobName LineNo SelectJob TEST 0 #SelectJob,Ok StartJob 启动程序 JobName StartJob TEST #StartJob,Ok Pause 暂停当前程序 - Pause #Pause,Ok Continue 继续当前程序 - Continue #Continue,Ok ServoOn 伺服上电 - ServoOn #ServoOn,Ok ServoOf...

记录学习内容 8285

js获取键盘按键事件、判断键盘按键事件、调用键盘按键事件

js获取键盘按键事件、判断键盘按键事件、调用键盘按键事件

文龙刚的博客 3357

LTO编译器优化介绍以及开启方法

LTO优化的详细介绍

性感的小君君 4924

第二节_PySide6项目创建流程介绍、手把手教学打包EXE可执行文件

本文详细介绍了如何使用PySide6创建一个带UI界面的Python程序,并将其打包成exe可执行文件。首先,通过Pycharm创建项目,并使用PySide6-Designer工具设计UI界面,将生成的ui文件转换为Python代码。接着,编写主程序,加载UI界面并实现功能,如加载图片、设置图标等。最后,通过资源文件管理图片资源,并确保UI界面的更新能同步到主程序中。整个过程涵盖了项目创建、UI设计、代码编写及资源管理,适合初学者学习如何将Python程序打包为可执行文件。

su桥木的博客 2559

【Web APIs】JavaScript 事件高级 ⑦ ( 键盘事件 | 常用的键盘事件类型 | 按键事件 keyCode 属性 | 键盘快捷输入案例 | 放大输入框输入内容案例 )

一、JavaScript 键盘事件类型 1、常用的键盘事件类型 2、代码示例 二、JavaScript 按键事件 keyCode 属性 1、按键事件 keyCode 属性 2、代码示例 三、键盘快捷输入案例 1、案例需求 2、代码示例 四、放大输入框输入内容案例 1、案例需求 2、代码示例

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1952

华为od 面试八股文_JAVA语言_01_含答案

华为od 面试八股文_JAVA语言_01_含答案

MISAYAONE的博客 4314

JavaScript(键盘事件,捕获与冒泡)

键盘输入键码值 注意:键码13的enter是字母键盘上的回车键。键码为108的enter是右数字小键盘上的回车键 (1)keypress事件 <body> <input type="text" id="what" onkeypress="search(event)" /> </body> <script type="text/javascript"> function search(event){ if(event.keyCode

qq_44012757的博客 1468

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

捕获js textbox键盘事件

捕获js textbox键盘事件document.all["t1"].onkeydown=function(){alert(String.fromCharCode(event.keyCode)  )} 

陆俊杰-工作笔记 1158

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Javascript捕获键盘事件(兼容多浏览器)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34306676的博客 128

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

js捕获键盘事件之keydown、keyup以及keypress

js keyup、keypress和keydown事件都是有关于键盘的事件 当一个按键被pressed 或released在每一个现代浏览器中,都可能有三种客户端事件。 keydown eventkeypress eventkeyup event keydown事件发生在键盘的键被按下的时候,接下来触发keypress事件。 keyup 事件在按键被释放的时候触发。 这三个

johnhuster的专栏 2439

js捕获键盘事件firefox和ie有区别

    // 注册onKeyDown事件        var pressedKey;    var keyInfo;    window.onload = function() {        document.getElementById("sql").onkeydown = register;    }    function register(e) {        if (!e) { 

烧不死的鸟 2046

JS 捕获 input 中 键盘按键

JS 捕获 input 中 键盘按键 的相应处理事件是很简单的,google搜索一下很容易找到处理方式,请看如下一种简单的处理方式: HTML代码: <div> <input type="text" id="myinput" /> </div> JavaScript 方法: ...

weixin_30639719的博客 229

09JavaScript中的事件(键盘事件、执行多次事件、事件冒泡、事件委派)

1、JS事件(1)点击事件:onclick(2)双击事件:ondblclick(3)失去焦点:onblur(4)获得焦点:onfocus(5)鼠标移入:onmouseover(6)鼠标移出:onmouseout(7)鼠标移动:onmousemove(8)窗口尺寸被调整:onresize(9)按下鼠标:onmousedown(10)松开鼠标:onmouseup(11)滚动鼠标滚轮:onmousewh...

weixin_47316183的博客 796

js键盘事件全面控制

 这个是捕获键盘事件输入状态的js代码,它可以判断你敲打了键盘的那个键,ctrl、shift,26个字母等等,返回具体键盘值。Javascript:keyCode键盘键码值表键盘事件全面控制 - 扮靓吧时尚女生论坛www.mei828.cn TD {text-align:center}function init() {document.onkeydown = showKeyDo

hjpengjava的专栏 2937

js监听键盘事件

<script> document.onkeydown = function(event){ let e = event || window.event || arguments.callee.caller.arguments[0] if(e && e.keyCode == 27){ // 按Esc co...

di84186的博客 119

Vue 事件、事件冒泡和事件捕获

vue 事件、事件冒泡、事件捕获和终止事件冒泡

江西第一深情的博客 4060
上一篇: JS 处理 FCK的内容
下一篇: JS鼠标事件(转)
stefenjun
博客等级 码龄23年 4粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值