JavaScript中关键侦听器之间的差异

JavaScript中关键侦听器之间的差异,javascript,canvas,keylistener,Javascript,Canvas,Keylistener,我一直在阅读HTML5画布上关于游戏开发的文章,但没有一篇文章通常是经过优化的。在阅读多篇文章的过程中,我发现在javascript中使用不同的方法来创建关键侦听器。 我找到的第一个 window.addEventListener( "keydown", eventReaction, false ); document.onkeydown = function(e) { //do stuff with this }; 我找到的第二个 window.addEventListener( "key

我一直在阅读HTML5画布上关于游戏开发的文章,但没有一篇文章通常是经过优化的。在阅读多篇文章的过程中,我发现在javascript中使用不同的方法来创建关键侦听器。 我找到的第一个

window.addEventListener(
"keydown",
eventReaction,
false
);
document.onkeydown = function(e) {
//do stuff with this
};
我找到的第二个

window.addEventListener(
"keydown",
eventReaction,
false
);
document.onkeydown = function(e) {
//do stuff with this
};

它们之间有什么区别?哪一个是合适的还是最快的?我不想使用不推荐的方法,我只想使用适合html5画布的方法。。。如果这是一个糟糕的问题,请不要重复我,告诉我,我会删除它。

第二段代码是直接在Htmlement上指定侦听器。
这并不是不推荐的,但这不是一条路要走

document.onkeydown = function(e) {
//do stuff with this
};
window.addEventListener("keydown",eventReaction,false);
您为HtmleElement指定侦听器的第一部分。这样,您可以为一个操作指定多个事件。
这绝对是一条路要走

document.onkeydown = function(e) {
//do stuff with this
};
window.addEventListener("keydown",eventReaction,false);
注意:
addEventListener
适用于现代浏览器和IE>8


注:不好的问题不存在,只有不好的答案;)

后者是老东西
addEventListener
是当今的发展趋势。我刚刚意识到
canvas.addEventListener(“keydown”,函数r(e){alert(e.keyCode);},true)对我不起作用,我想知道为什么…我认为是因为元素焦点。如果您在
窗口中更改它。addEventListener
将起作用。但是,这会不会将listener添加到整个窗口中,并且当用户离开画布时会使用事件?我明白了。。无法聚焦画布元素。我真的希望我能把eventlistener添加到画布上。。。我发现,
canvas.onkeypress
只在用户使用canvas时起作用,但这不是解决问题的方法。。。。谢谢,还有一些不好的问题,这就是为什么我必须建立一个新的帐户,因为我的旧帐户得到了很多代表和得到了横幅。大多数人都在网上评判问题。如果你的问题过于宽泛或离题,你很快就会被否决。