2011-02-25 42 views
4

我試圖用philogl庫的東西,當我寫,身體的onload =「」找不到功能

<!DOCTYPE html> 

<html> 
<head> 
    <title>PGL2</title> 
    <script type="text/javascript" src="PhiloGL.js"></script> 
    <script type="text/javascript"> 
    function webGLStart(){ 
     alert('I m alive'); 
    } 
</script> 
</head> 

<body onload="webGLStart();"> 
<canvas id="c" style="width:500px; height:500px;"></canvas> 


</body> 
</html> 

一切工作正常,但如果我寫它像一些philogl,

<!DOCTYPE html> 

<html> 
<head> 
    <title>PGL2</title> 
    <script type="text/javascript" src="PhiloGL.js"></script> 
    <script type="text/javascript"> 
    function webGLStart(){ 
     var triangle = new PhiloGL.O3D.Model({ 
      vertices: [[0,1,0],[-1,-1,0],[1,-1,0]], 
      colors: [[1,0,0,1],[0,1,0,1],[0,0,1,1]] 
      }); 
     var square = new PhiloGL.O3D.Model({ 
      vertices: [[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0]], 
      colors: [[0.5,0.5,1,1],[0.5,0.5,1,1]],[0.5,0.5,1,1] 
      }); 
    } 
</script> 
</head> 

<body onload="webGLStart();"> 
<canvas id="c" style="width:500px; height:500px;"></canvas> 


</body> 
</html> 

鉻和Firefox給我一個錯誤,說webGLStart()沒有定義。 我的代碼有什麼問題?

+0

旁邊[Pointy的回答](http://stackoverflow.com/questions/5117536/body-onload-cannot-find-function/5117571#5117571)我推薦[Firebug](http://getfirebug.com/) (Firefox的附加組件),它顯示了許多關於JavaScript的內容,並幫助您找到混亂的東西。 – Albireo 2011-02-25 13:07:37

+0

不好意思,但主要的問題是我現在不得不使用chrome,因爲現在firefox缺乏對webGL的支持,甚至v4b11在每個webgl演示的網站上都會給我提供錯誤,如果有任何好的獨立應用程序... – gkaykck 2011-02-25 13:50:02

回答

8

這條線:

 colors: [[0.5,0.5,1,1],[0.5,0.5,1,1]],[0.5,0.5,1,1] 

語法不正確:關閉 「]」 是在錯誤的地方。因此,函數定義「失敗」,可以這麼說,而函數並不存在。

我剛剛醒來,所以我不知道我有什麼問題可以發現。

+0

確實;不錯 – 2011-02-25 13:06:08

+0

是的,這是workds,但令我驚訝的是,只有一行代碼是錯誤的,我得到一個關於「函數未定義」的錯誤,得到真正的錯誤消息的最佳方式是什麼? – gkaykck 2011-02-25 13:06:51

+1

嘗試使用Firebug(請參閱我對您的問題的評論),它說明您的代碼的哪一行發生了錯誤。 – Albireo 2011-02-25 13:08:34

0

使用此「philogl」的方式必須存在錯誤,從而導致函數無法完全解釋。特別是,你的方括號有一個語法錯誤。該功能然後保持不確定。

將來您可以打開Firebug中的錯誤控制檯(或等同於您的首選瀏覽器)來查看您做錯了什麼。

此外,在腳本中更喜歡document.onload = function() { ... },而不是將腳本嵌入到HTML標記中。