JS监听键盘两个组合键的触发

*键盘事件的回调是document.onkeydown函数, 该函数会传入一个Event类型的参数

document.onkeydown = function(e) {
    //编写事件触发时候的回调函数
}

*Evnet事件的具体内容请见W3C文档, 样子是这样的:

具体的网址:

http://www.w3school.com.cn/jsref/dom_obj_event.asp

*实例应用

需求:当按下Ctrl+Enter键时触发saveComment方法

代码为:

document.onkeydown = function(e) {
	//console.log(e.ctrlKey);
	if (13 == e.keyCode && e.ctrlKey)
	{
		//console.log(c1);
		saveComment();
	}
}

分析:当ctrl按下时候, 方法被触发, 不松开ctrl键, 按下enter键, 方法再次被触发.

猜想:1)e的内部实现必然有一个数组用来存储按键的id, 也就是说哪怕有10个按钮同时按下, 也能同时识别.

同时, 将每个按钮的对象的属性中有一个是否按下的属性, 如果按下就是true.

2)同时, 按下ctrl后再按下enter不是简单的再次调用onkeydown函数, 而是保存了上一次onkeydown还没有完成的事件(ctrl键按下).

具体的实际应用请看我的这篇文章:

欢迎评论, 指导.

时间: 2024-08-07 07:49:20

JS监听键盘两个组合键的触发的相关文章

Js监听键盘事件

表单提交的时候大多数用户都习惯用回车键来进行提交,页面接受回车键的处理如下: if(navigator.userAgent.indexOf("MSIE")>0) {   //IE document.onkeydown=function(){ if(13 == event.keyCode){ alert('browser is ie and enter key down'); } } }else{   //非IE window.onkeydown=function(){ if(13

KeyboardJS 开发指南 - 与 Three.js 配合使用的捕捉键盘组合键库

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. A JavaScript library for binding keyboard combos without the pain of key

JS监听键盘的组合按键

Mark 一下: $(document).keydown(function (e) { console.log(e); var keyCode = e.keyCode || e.which || e.charCode; var shiftKey = e.shiftKey; if (shiftKey && keyCode == 68) {//shift+D var leftbtnDisplay = $("#Leftbtn").css('display'); if (lef

js监听键盘提交表单

<!DOCTYPE html> <html> <head> <title>登陆系统</title> <link href="/nmm/Public/User/css/user.css" rel="stylesheet"> <link href="/nmm/Public/css/bootstrap.min.css" rel="stylesheet"&g

js监听键盘方向键事件

<SCRIPT language=javascript> document.onkeydown = chang_page; function chang_page() { if (event.keyCode == 37 || event.keyCode == 33) location = 'http://www.maitianquan.com'; if (event.keyCode == 39 || event.keyCode == 34) location = 'http://www.lan

Atitit。监听键盘上下左右方向键事件java js jquery c#.net

Atitit.监听键盘上下左右方向键事件java js jquery   c#.net 1. Keyword1 2. 通用的实现流程1 3. Js的实现1 3.1. Bind control ,event handeler1 3.2. key_press_hadler4up2 4. Java的实现3 5. C# .net winformn4 6. 参考4 1. Keyword 键盘事件  方向键   上下左右  按键监听 2. 通用的实现流程 Bind (control,key_eventHan

利用原生JS判断组合键

<script type="text/javascript"> var isAlt = 0; var isEnt = 0; document.onkeydown = function(e){ var evn = e||event; var code = evn.keyCode||evn.which||evn.charCode; if(code==13){ isEnt = 1; } if(code==18){ isAlt = 1; } // 判读Alt+Enter组合键 if

监听键盘的enter键

$(document).keypress(function(e)              {                  switch(e.which)                  {                                         case 13:   if(g_flag == "login"){validateLoginForm();}                                else if(g_flag == &

bash默认组合键,通配符及特殊符号

看鸟哥Linux私房菜中介绍的linux命令太多了,看一遍打一遍还是记不住,鉴于目前是在Windows下工作,又对于Linux系统的爱好,所以之后装了虚拟机在玩,由于本人比较笨,看一遍跟着书敲一遍还是记不住,所以就在此练练手,回忆一下看的内容,重新敲一遍加强记忆. 1.bash默认组合键: Ctrl+C ----------->终止目前的命令 Ctrl+D ----------->输入结束(EOF),例如邮件结束的时候 Ctrl+M ----------->就是Enter Ctrl+S