我有一个页面,我需要在用户点击页面的一部分(div)后捕捉用户的输入。这里是我的代码:event.charCode总是返回0
<html>
<body>
<div style="background-color: lightpink" onkeydown="onkeydown1(event)" tabindex="-1">
click me, then press a key
</div>
<script type="text/javascript">
function onkeydown1(event)
{
alert(event.charCode);
}
</script>
</body>
</html>
看到它在行动:http://jsfiddle.net/WRwBF/
我花了最长的时间,到了这一步,因为FireFox的默认不容许一个div为“具有焦点。”最终我发现为div设置tabindex可以让它成为焦点,而onkeydown事件就可以工作。
现在我的问题是,当我点击div并按下一个键时,无论按什么键,都会返回值“0”。为什么会发生这种情况,我该如何解决?
我非常感谢您能给予的任何指导!
简短版本是:[浏览器是愚蠢的](http://www.quirksmode.org/js/keys.html)。那QuirksMode文章应该解释一切。基本上,为了便携地获取'charCode',你需要检测'keyPress'事件,并且尝试'evt.charCode || evt.keyCode' – millimoose