2011-02-25 2 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> 

chrome и firefox дает мне ошибку, которая говорит, что webGLStart() не определен. Что не так с моим кодом?

+0

Кроме ответа [Pointy's] (http://stackoverflow.com/questions/5117536/body-onload-cannot-find-function/5117571#5117571) Я рекомендую [Firebug] (http://getfirebug.com/) (надстройка для Firefox), он показывает много вещей о JavaScript и помогает вам найти то, что вы испортили. – Albireo

+0

извините, но главная проблема заключается в том, что мне сейчас нужно использовать chrome, потому что firefox сейчас не имеет поддержки webGL, и даже v4b11 действительно дает мне ошибки на каждом веб-сайте демоверсии, если бы было какое-то хорошее автономное приложение для этого ... – gkaykck

ответ

8

Эта линия:

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

синтаксически неверно: закрытие "]" находится в неправильном месте. Таким образом, определение функции «не удалось», так сказать, и функция на самом деле не существует.

Я буквально проснулся, поэтому не уверен, что со мной не так, что я мог это заметить.

+0

В самом деле; не плохо –

+0

да это работает, но что меня удивляет, только одна строка кода ошибочна, и я получаю сообщение об ошибке «функция не определена», что является лучшим способом получения реальных сообщений об ошибках? – gkaykck

+1

Попробуйте с Firebug (см. Мой комментарий к вашему вопросу), он говорит, в какой строке вашего кода произошла ошибка. – Albireo

0

Должна быть ошибка в том, как вы используете этот «philogl», не позволяя полностью интерпретировать функцию. В частности, у вас есть синтаксическая ошибка с квадратными скобками. Функция затем остается неопределенной.

В будущем вы можете включить консоль ошибок в Firebug (или эквивалент для вашего предпочтительного браузера), чтобы увидеть, что вы делаете неправильно.

Кроме того, предпочитайте document.onload = function() { ... } в скрипте вместо того, чтобы встраивать скрипты в теги HTML.

Смежные вопросы