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

Javascript 当已经有一个window.load==function(){}如何为画布添加keyDown事件,javascript,events,canvas,onload,keydown,Javascript,Events,Canvas,Onload,Keydown,我使用一些JSAPI制作了一些图表。在代码中已经有window.onload=function(){},现在我想为画布设置keydown事件。有人知道在哪里添加代码吗?这看起来很傻,但我就是无法获得有关window.onload对js操作的影响的信息 您可以改用DOM2处理程序: window.addEventListener("load", function() { /*...your code here...*/}, false); 在IE8和更早版本中,您必须处理他们没有的事实: if

我使用一些JSAPI制作了一些图表。在代码中已经有
window.onload=function(){}
,现在我想为画布设置keydown事件。有人知道在哪里添加代码吗?这看起来很傻,但我就是无法获得有关window.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处理程序并排放置,不会干扰它们。它们提供的最大优势是,您可以为同一事件使用多个处理程序,因此不会出现这个问题(即已经存在一个处理程序)


旁注:
窗口
上的
load
事件发生在页面加载过程的后期,在所有外部资源完成加载(或未能加载)之后。99%的情况下,就在关闭标记之前,它是这样的:

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

然后您根本不需要钩住
load
事件,因为上面标记定义的所有DOM元素都已经存在。只要让你的代码立即运行