ОЧЕНЬ перепутано - JavaScript не выполняется - разве что в Firebug включена консоль? - PullRequest
1 голос
/ 16 июля 2010

Я только начал работу над Javascript для проекта, в основном я работаю с бэкэндом, поэтому я извиняюсь за новость в этом!Кроме того, я не использую Javascript Framework, потому что я хочу изучить основы, прежде чем делать все очень легко для себя:)

Итак, вот мой вопрос / путаница: я написал небольшой javascript, который динамически изменял формы.Вот как я назвал код:

// loads the initial box
window.onload = initList(environment_box);

// loads artifacts on each change to environment select box
environment_box.onchange = changeList;

Это работало как волшебство - в ХРОМЕ это так!Я никогда не замечал, что он не работает в Firefox (это всего лишь внутренний инструмент, так что я могу предположить, что это приличные браузеры, но я думаю, эй, если он работает в Chrome, он будет работать в Firefox!).Итак, я провел некоторое исследование, и кажется, что код не исполняется в Firefox.Я вытащил клопа и хотел посмотреть, что происходит.

Интересно, что когда я включил консоль в firebug, мой код был выполнен!Я очень смущен тем, почему, и я был бы очень признателен за любую помощь, которую я мог получить.Спасибо!

-Шон

Ответы [ 2 ]

10 голосов
/ 16 июля 2010

Вы вызываете какой-то метод для console в вашем JavaScript, это мое лучшее предположение. В Chrome console определено по умолчанию, поэтому это не проблема.

Однако в Firefox такого глобального объекта нет (не без Firebug), поэтому при попытке вызвать свойство для неопределенного объекта, такого как

console.log(..);

выдает исключение, которое вы не перехватываете, поэтому выполнение JavaScript останавливается.

1 голос
/ 16 июля 2010

Вы, вероятно, вызываете метод объекта console, который просто не существует по умолчанию в большинстве веб-браузеров.Он может быть всегда доступен в браузерах на основе webkit (например, Chrome), но для firefox / IE (/ opera?) Требуется внешнее дополнение, либо firebug, либо зависимость javascript.

Извлекайте такие вещи, как firebugx , который просто определяет наиболее распространенные методы консольного объекта как неоперативные функции.

...