<script>
を文書の<head>
に入れているときに、HTML canvas
のグラフィックスを描画すると機能しません。たとえば、次のようになぜスクリプトがheadタグの中に置かれてもHTML5 Canvasが描画されないのですか?
<head>
<script>
var canvas = document.getElementById("myCanvas");
if(canvas.getContext("2d"))
var ctx = canvas.getContext("2d");
ctx.moveTo(0,0);
ctx.lineTo(200,100);
ctx.stroke();
</script>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
Your browser does not support the canvas element.
</canvas>
</body>
しかし<script>
が<body>
の内側に配置されたとき、あなたは期待どおりの結果を得るのですか。 <script>
を<head>
の中に置くことができるので、なぜこれがcanvas
と一緒に動作しないのですか?前もって感謝します!
これは、キャンバス要素がDOM内に存在する前にキャンバス要素にアクセスしようとしているためです。あなたのコードを 'window.onload'の中に置くか、キャンバスがロードされた後に、またはDOM要素の後にHTMLの中に置きます(本文の最後のスクリプト)。 –