【问题标题】:Why window.onload works and onload="" does not work为什么 window.onload 有效而 onload="" 无效
【发布时间】:2015-07-22 19:06:19
【问题描述】:

所以由于某种原因,我的画布在通过 onload 调用时没有被应用,我尝试了其他事件并且它们有效,我尝试更改放置 onload 的位置(页脚、p 和画布标签),但没有'不工作,我通过将它放在一个可以工作的函数的底部来测试脚本功能

我尝试了另一个我做过的网站,它有 onload 和 canvas',它们可以工作,所以在查找可能的解决方案后,我最终不得不在脚本区域添加 windows.onload 并修复它

我想知道的是为什么标签中的onload不起作用

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<script>
function draw(){
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.arc(17,17,15,0,2*Math.PI);
ctx.closePath();
ctx.lineWidth = 2;
ctx.fillStyle = 'yellow';
ctx.fill();
ctx.stroke();
}
window.onload= draw;
</script>
</head>

<footer>
<p>
<canvas id="canvas" width="34" height="34" onload="draw()"></canvas>
</p>
</footer>
</html>

【问题讨论】:

标签: javascript html canvas


【解决方案1】:

这是因为只有 body 元素和 img 元素可以触发 onload() 事件。

只需在脚本标签内使用函数名称draw(),如画布标签后的&lt;script&gt; draw(); &lt;/script&gt;..

【讨论】:

  • 我没有尝试将onload添加到body标签,我不知道它不能只用于那里。
  • @KevinKnapp 看看这里stackoverflow.com/questions/22670482/… 如果有帮助请接受我的回答..Thanx
  • @AvinashBabu - “只有 body 元素可以触发 onload() 事件。” - 这是 falseimg 元素也支持此事件。
猜你喜欢
  • 2011-07-05
  • 1970-01-01
  • 2020-03-09
  • 2012-01-15
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多