Canvas onload事件未触发

sig*_*gil 10 javascript html5 canvas

我不能让onload事件为Canvas元素工作.这是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>
Run Code Online (Sandbox Code Playgroud)

这里是Javascript main.js:

function initializeCanvas(){
    alert("hello");
}
Run Code Online (Sandbox Code Playgroud)

我知道HTML被发现main.js,因为如果我改变onloadonclick它正常工作:点击画布的区域触发警报.那么为什么我不能这样做onload呢?

Jon*_*ran 10

只有body元素(也许是iframe)可以触发onload事件.简单地放在标签<script> initializeCanvas(); </script>后面<canvas>.

  • 这是正确的答案,我只想补充说`onload`可以附加到`<body>`,`<frame>`,`<frameset>`,`<iframe>`,`<img>`,` <input type ="image">`,`<link>`,`<script>`和`<style>` (5认同)
  • 是的,它会在创建画布元素后触发,但画布内容尚未加载。所以如果你想用画布做点什么,可能还不可能。 (2认同)