当已经有一个window.load==function(){}如何为画布添加keyDown事件

When there is already a window.load==function(){} how to add keyDown event for a canvas

本文关键字:布添加 事件 keyDown 添加 有一个 window load function      更新时间:2023-09-26

我使用了一些JS API来制作一些图表。在代码中已经有window.onload = function (){},现在我想有一个画布的keydown事件。有人知道在哪里添加代码吗?这似乎很愚蠢,但我就是无法获得有关窗口的信息。Onload对js动作的效果。

您可以使用DOM2处理程序:

window.addEventListener("load", function() { /*...your code here...*/}, false);

在IE8和更早的版本上,你必须处理他们没有它的事实:

if (window.addEventListener) {
    window.addEventListener("load", function() { /*...your code here...*/}, false);
}
else if (window.attachEvent) {
    window.attachEvent("onload", function() { /*...your code here...*/});
}

DOM2处理程序与旧的DOM0处理程序放在一起,而不干扰它们。它们提供的最大优点是您可以为同一个事件拥有多个处理程序,因此这个问题(已经存在一个处理程序)不会出现。


旁注:window上的load事件发生在页面加载过程中非常晚,在所有外部资源完成加载(或失败)之后。99%的情况下,最好将代码放在body末尾的script中,就在关闭</body>标记之前,如下所示:

<!-- ...content... -->
<script src="yourscript.js"></script>
</body>
</html>

那么根本不需要挂钩load事件,因为上面标记定义的所有DOM元素都已经存在。