私は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(){}に残りのコードを挿入しようとしましたが、どちらも動作しませんでした。
私はいつもすべてのキャンバスオブジェクトのhtmlボディにjavascriptコードを入れなければなりませんか?
スクリプトタグがキャンバス要素の下にあることを確認してください。文書が読み込まれた後に処理してください(window.onloadなど) – georg
スクリプト実行時にキャンバスが存在しません。 –
thatsなぜドキュメント準備完了状態が必要なのですか?ロードされる必要があるすべてを知るために:) –