我使用Javascript编写代码,然后找到一个我认为很奇怪的例子。运行时编译顺序
实施例:
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas"></canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.arc(95,50,20,0,2*Math.PI);
ctx.stroke();
</script>
</body>
</html>
上面示例工作,并输出一个圆。
但是,当我尝试将脚本的确切代码复制到javascript.js文件中时,圆圈不再存在。为什么会这样?
<!DOCTYPE html>
<html>
<head>
<script src="javascriptFile.js"></script>
</head>
<body>
<canvas id="myCanvas"></canvas>
</body>
</html>
我认为的优先顺序将是Web浏览器发布的HTML代码,然后构建我的身影JavaScript代码将运行在创建HTML对象之后的DOM。我尝试在画布内放置一个函数createShape(),然后将其余代码插入到javascriptFile.js文件的函数createShape(){}中,但也无法使用。
我是否必须将JavaScript代码始终放在html正文中用于所有画布对象?
确保你的脚本标签是画布元素,以下更好,做的东西文件加载后(在window.onload等) – georg
在脚本运行时画布尚不存在。 –
那就是为什么我们需要文档准备好状态...知道需要加载的所有东西:) –