2012-04-10 2 views
2

После кодирования кода CSS, Javascript и HTML5 в том же файле HTML для этого веб-приложения я решил разбить CSS и Javascript на свои собственные внешние файлы и включить их в файл HTML5.Внешний Javascript - Функция не определена, когда она есть?

я столкнулся с незначительным вопросом, какой код Javascript не будет работать, пока я не добавил следующее:

window.onload = function() { //script code} 

Теперь, похоже, как и все, но функции не загружаются. Поскольку ошибка, которую я обнаружил с помощью Firebug, говорит, что функция еще не определена, но это явно так.

Вот код:

HTML-страница http://turing.cs.olemiss.edu/~sbadams2/RebelFlow.html

Файл JS http://turing.cs.olemiss.edu/~sbadams2/RebelFlow.js

Я читал другие ответы, которые утверждают, что путь может быть неправильным, но все остальное в пределах Файл Javascript загружается отлично, за исключением фактической функции.

Я не уверен, что может вызвать эту проблему.

+0

Значит, все ваши функции не определены или просто 'window.onload' не работает? Добро пожаловать в SO ~ –

+0

Очевидно, что window.onload работает до такой степени, когда загружает код Javascript, к сожалению, теперь он говорит, что функции не определены, несмотря на то, что они есть. Я довольно новичок в Javascript и веб-приложениях. – Sbadams2

+1

Когда вы закодировали все вместе, где был JavaScript, в голове или в конце тела? – j08691

ответ

5

Проблема заключается в том, что javascript имеет функцию scope, что означает, что переменные/функции, определенные внутри функции, видны только внутри этой функции, а не снаружи. window.onload=function(){/*your code here*/} создает дополнительную область видимости, поэтому ваша функция createWellPump() не известна вне функции window.onload wrapper.

Простым решением было бы удалить обертку window.onload и просто загрузить скрипт непосредственно перед закрывающим тегом </body>.

+0

Пригвоздил его. Казалось, это проблема. – Sbadams2

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