<HTML>
<HEAD>
<TITLE>New Document </TITLE>
</HEAD>
<script>
var redflag=false
var blueflag=false
function moveRed(){
var obj=document.getElementById('red')
if(redflag)
obj.style.left=parseFloat(obj.style.left)-10+'px'
setTimeout('moveRed()',40)
}
function down(event){
var event=event||window.event
if(event.keyCode==65)
redflag=true
if(event.keyCode==39)
blueflag=true
}
function up(event){
var event=event||window.event
if(event.keyCode==65){
redflag=false
}
if(event.keyCode==39){
blueflag=false
}
}
function moveBlue(){
var obj=document.getElementById('blue')
if(blueflag)
obj.style.left=parseFloat(obj.style.left)+10+'px'
setTimeout('moveBlue()',40)
}
</script>
<BODY onload='moveBlue()moveRed()window.document.onkeyup=upwindow.document.onkeydown=down'>
<div id='red' style='position:absolutewidth:200pxheight:200pxborder:1px solid redleft:600px'></div>
<div id='blue'style='position:absolutewidth:200pxheight:200pxborder:1px solid blueleft:10px'></div>
</BODY>
</HTML>
可以监听到两个不同的keyCode,a和b不能同时按下,你认为的同时,在计算机看来还是有先后顺序,所以监听到的是a和b都触发了,但每次事件只有一个keyCode,所以你要检测时需要自行记录下状态,keydown记录下按键,keyup再取消这个按键,此时可以判断另一个按键是否在记录中,从而判断两个按键同时按另外,shift ctrl等这些组合键可以直接在其他按键的事件中获取到状态,不需要自己记录