Canvas的onload事件没有触发

14

我无法让Canvas元素的onload事件正常工作。以下是HTML代码:

<!DOCTYPE html>
<html>
    <head>
        <script src="js/main.js"></script>
    </head>
    <body>
        <canvas id="modelZone" onload="initializeCanvas();" width="400" height="300"></canvas>
    </body>
</html>

这里是在main.js中的Javascript代码:

function initializeCanvas(){
    alert("hello");
}
我知道HTML找到了main.js,因为如果我将onload更改为onclick,它就可以正常工作:在Canvas区域点击会触发一个警报。那么为什么我不能使用onload呢?
1个回答

15
只有body元素(以及可能是iframe)才能触发onload事件。简单地在<canvas>标签之后插入 <script> initializeCanvas(); </script>> 即可。

10
这是正确答案,我只想补充一下:onload 可以附加到 <body><frame><frameset><iframe><img><input type="image"><link><script><style> - Skwal
2
是的,它会在canvas元素创建后触发,但canvas内容尚未加载。因此,如果您想对canvas进行操作,可能还不可能。 - Tony Gustafsson
1
太棒了!花了12个小时寻找某些“神奇插件”……而脚本的自然行为——逐行读取——就解决了问题!显然…… - Pedro Ferreira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接