2011-10-21 13 views
0

を失敗した私は考え理由を持っていません。このエラーCannot call method 'appendChild' of nullラファエルJSは、以下の、非常に基本的なスクリプト

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <script type="text/javascript" src="raphael-min.js"> 
     </script> 

     <script type="text/javascript"> 

      var paper = Raphael("canvas", 320, 200); 

     </script> 
    </head> 
    <body> 
     <div id="canvas"></div> 
    </body> 
</html> 

でChromeとSafariで失敗した - 誰が?

+0

は、あなたが質問としてタイトルを言い換えることができ、またはより具体的には(例えば、エラーメッセージを追加しますか)? –

+0

@MichaelPaulukonis - 彼はすでにエラーメッセージ –

答えて

5

DOMの準備ができたら呼び出しをラップする必要があります。

<script type="text/javascript"> 
// Using JQuery 

$(function() { 
    var paper = Raphael("canvas", 320, 200); 
}); 
</script> 
+1

を公表しました。私はちょうどそれを考え出した。それはドキュメントのどこにでも言わない - 私は本当にそれを知るべきだが、それはドキュメントになければならない! –

+1

よく例があります。プラス - ちょうど - 私はdomにアクセスしていますか? –

+0

dom要素を作成する前に呼び出すと、既存のdom要素で動作するjavascript関数は実質的には失敗します。 – James

1

それとも、div要素を定義した後だけで関数を呼び出すには...

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <script type="text/javascript" src="raphael-min.js"> 
     </script> 
    </head> 
    <body> 
     <div id="canvas"></div> 
     <script type="text/javascript">var paper = Raphael("canvas", 320, 200);</script> 
    </body> 
</html> 
関連する問題