关键事件只在文档和可能接收焦点的元素上触发。因此要处理
<canvas>
元素,则需要通过添加
tabindex
属性(例如。
<canvas id="game" width="800" height="400" tabindex="1"></canvas>
)或者只处理整个文档的关键事件,这可能不是您想要的(例如,如果您希望处理关键事件的页面上有多个元素)。
var el = document.getElementById("your_element_id");
el.onkeydown = function(evt) {
evt = evt || window.event;
alert("keydown: " + evt.keyCode);
};
el.onkeyup = function(evt) {
evt = evt || window.event;
alert("keyup: " + evt.keyCode);
};
如果您可能需要多个侦听器,可以使用
addEventListener
attachEvent
在IE<=8中:
if (typeof el.addEventListener != "undefined") {
el.addEventListener("keydown", function(evt) {
alert("keydown: " + evt.keyCode);
}, false);
} else if (typeof el.attachEvent != "undefined") {
el.attachEvent("onkeydown", function(evt) {
alert("keydown: " + evt.keyCode);
});
}