回应关键新闻javascript

时间:2011-09-29 17:10:56

标签: javascript

我很抱歉,如果这是基本的,但我搜索过,发现没有任何效果。

我想加载一个网页。加载该页面时,它会显示图像。我想让页面自动开始监听右箭头按键。当发生这种情况时,我的脚本中的一个函数将改变图像(我通过使用单击时响应的按钮来完成该部分。)

这是我无法开始工作的关键新闻的倾听和反应。请注意,我正在使用Safari,但我希望它可以在firefox或IE中使用。

请帮助谢谢。

更新回应评论:这是我尝试过的,虽然我简化了另一部分以缩短它 - 现在它只是将结果写入div:

<html>
<head>
<script language="Javascript">
function reactKey(evt) {
   if(evt.keyCode==40) {
      document.getElementById('output').innerHTML='it worked';
   }
}
</script>
</head>
<body onLoad="document.onkeypress = reactKey();">
<div id="output"></div>
</body>
</html>

3 个答案:

答案 0 :(得分:4)

如果您使用的是jquery,可以这样做:

$(document).keydown(function(e){
    if (e.keyCode == 39) { 
       alert( "right arrow pressed" );
       return false;
    }
});

答案 1 :(得分:1)

最简单的方法是使用许多热键库中的一个,例如https://github.com/jeresig/jquery.hotkeyshttps://github.com/marquete/kibo

编辑:尝试这样的事情(在你已经加载了Kibo的javascript之后)。

在您的正文声明中,添加onload处理程序:<body onload="setuphandler">

然后添加这样的内容(取自Kibo页面):

<script type="text/javascript">
var k = new Kibo();
function setuphandler()
{
  k.down(['up', 'down'], function() {
  alert("Keypress");
  console.log('up or down arrow key pressed');
});
}
</script>

答案 2 :(得分:1)

document.onkeydown= function(key){ reactKey(key); }

function reactKey(evt) {
   if(evt.keyCode== 40) {
      alert('worked');
   }
}

http://jsfiddle.net/dY9bT/1/