2016-09-16 12 views
2

私はjavascriptを初めて使っています。そうしているうちに私は理解できないこの問題に遭遇し、私はあなたの助けを求めてここにいます。キャンバスにdocument.getElementByIdが返されますnull

これは、私は、コンソール(放火魔)で次のように実行すると、それはnullを返し、私は今http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_canvas_empty

、上にあったページIです。

なぜ私はここに期待した結果が得られませんか?

+1

のようなものにあなたのinit関数を変更することをお勧め。あなたのコンソールはメインページを見ていました。 – Barmar

+0

@Barmarありがとう!私は自分でそれを理解していないだろう。 –

+1

ほとんどのdevtoolsでは、iframeでコードを実行することができます。 – Oriol

答えて

0

DOMは、draw関数が呼び出されたときに既に読み込まれています。正しいです。

しかし、var canvas = document.getElementById( 'control'); - 描画関数内にないので、行はその前に評価されます。要素がレンダリングされる前に文書のすぐに実行されます。

私はあなたがこのページには、サンプル文書を保持するためのiframeを使用している

var canvas = document.getElementById('myCanvas'); 
var context = canvas.getContext('2d'); 
関連する問題