2011-02-25 36 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标记中。