js onkeydown 事件能检测两个按键同时按下吗? 比如我同时按下 a 和 b?

JavaScript09

js onkeydown 事件能检测两个按键同时按下吗? 比如我同时按下 a 和 b?,第1张

可以监听到两个不同的keyCode,a和b不能同时按下,你认为的同时,在计算机看来还是有先后顺序,所以监听到的是a和b都触发了,但每次事件只有一个keyCode,所以你要检测时需要自行记录下状态,keydown记录下按键,keyup再取消这个按键,此时可以判断另一个按键是否在记录中,从而判断两个按键同时按

另外,shift ctrl等这些组合键可以直接在其他按键的事件中获取到状态,不需要自己记录

window对象有两个方法来实现定时功能,即

window.setTimeout()

,用来在制定时间后运行

window.setInterval()

,用来指定每隔一段时间重复运行

以及window.clearInterval()用来清除定时

用按钮的

onmousedown

,

onmouseup

,

onclick

事件组合来实现以下功能

代码如下

<script>

var

plusview

var

minusview

var

a=0

function

hello(){

document.getElementById("resultspan").innerHTML="5秒钟后显示我!!!长案按钮显示效果"

}

window.setTimeout("hello()",5000)

function

viewpluslong()

{

plusview=window.setInterval("viewplus()",100)

}

function

stopplus()

{

window.clearInterval(plusview)

}

function

viewminuslong()

{

minusview=window.setInterval("viewminus()",100)

}

function

stopminus()

{

window.clearInterval(minusview)

}

function

viewplus()

{

a=a+1

document.getElementById("resultspan").innerHTML=a.toString()

}

function

viewminus()

{

a=a-1

document.getElementById("resultspan").innerHTML=a.toString()}

</script>

<html>

<input

id="buttondown"

type="button"

value="<<

-减

"

onclick="viewminus()"

onmousedown="viewminuslong()"

onmouseup="stopminus()"

/>

<input

id="buttonup"

type="button"

value="加

+

>>"

onclick="viewplus()"

onmousedown="viewpluslong()"

onmouseup="stopplus()"

/>

(按住按钮不放可连续缩放)

</br>

result

is

:

<span

id="resultspan"

style="color:red"></span>

</html>

参考一下吧

,稍作修改就可以满足1、2两个条件

但是IE的键盘监听最多只能作用于document上(window我试过不行)

如果内嵌了iframe并且你的焦点在iframe上,那么按键无效

<script>

document.onkeydown

=

function()

{

var

oEvent

=

window.event

if

(oEvent.keyCode

==

13

&&

oEvent.ctrlKey)

{

alert("你按下了ctrl+enter")

}

}

</script>