【问题标题】:Canvas onload event isn't firing画布 onload 事件未触发
【发布时间】:2014-05-05 09:57:46
【问题描述】:

我无法让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>

这是main.js中的Javascript:

function initializeCanvas(){
    alert("hello");
}

我知道 HTML 正在查找 main.js,因为如果我将 onload 更改为 onclick 它可以正常工作:单击画布区域会触发警报。那么为什么我不能用onload 来做呢?

【问题讨论】:

    标签: javascript html canvas


    【解决方案1】:

    只有 body 元素(可能还有 iframe)才能触发 onload 事件。只需将&lt;script&gt; initializeCanvas(); &lt;/script&gt; 放在&lt;canvas&gt; 标记之后即可。

    【讨论】:

    • 这是正确答案,我只想补充一点,onload 可以附加到&lt;body&gt;&lt;frame&gt;&lt;frameset&gt;&lt;iframe&gt;&lt;img&gt;&lt;input type="image"&gt;&lt;link&gt;&lt;script&gt;&lt;style&gt;
    • 是的,它会在画布元素创建后触发,但画布内容尚未加载。所以如果你想用画布做点什么,那可能还做不到。
    • 太棒了! 12 小时寻找一些 magic plugin... 脚本的自然行为 - 逐行阅读 - 成功了!显然……
    猜你喜欢
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多