body onload = "" не может найти функцию - PullRequest
4 голосов
/ 25 февраля 2011

Я пытаюсь что-то с библиотекой филогл, и когда я писал,

<!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>

все работает нормально, но если я напишу в нем что-нибудь вроде филогля,

<!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 () не определена. Что не так с моим кодом?

Ответы [ 2 ]

8 голосов
/ 25 февраля 2011

Эта строка:

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

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

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

0 голосов
/ 25 февраля 2011

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

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

Кроме того, предпочитайте document.onload = function() { ... } в сценарии вместо встраивания сценариев в теги HTML.

...