var canvas = document.getElementById('myCanvas');
canvas.addEventListener('keydown', function (event) {
myHandleKeyboardEvent(event);
}, false);
这对我来说很好。事件被发送给我的处理程序。
但是,每当我按下空格键时,浏览器窗口就会滚动。
在键盘事件到达浏览器之前,是否有某种吞咽方法?
(我尝试将处理程序放在window
和document
上,结果相同。)
答案 0 :(得分:2)
因为它有效,所以我将其发布为答案:
var canvas = document.getElementById("myCanvas");
document.addEventListener(
"keydown",
function(event) {
if (document.activeElement && document.activeElement.id === canvas.id) {
event.preventDefault();
myHandleKeyboardEvent(event);
}
},
false
);
摘录现在包含Kaiido给出的重要建议 这是工作演示的链接。 https://codesandbox.io/s/o714xx10nz