Как смотреть ошибки. Firebug.

Форум

Учебник Node.JS скринкаст Стандарт языка

Справочник

Discord чат

 
Статьи Тест знаний Аналоги функций PHP

Курсы javascript

 

Update: Более новый материал по этой теме находится по адресу https://learn.javascript.ru/devtools.

В начале работы с javascript у Вас будет возникать масса ошибок.

Firebug поможет с их отловом, покажет где и почему они произошли.
К сожалению, он работает только в Firefox (и других браузерах на движке Mozilla), но более удобного инструмента на текущий день нет.

При установленном плагине Firebug наличие ошибок видно в правом нижнем углу браузера, в конце статусной строки.

Firebug-значок может иметь один из трех видов:

Галочка в зеленом кружке
Все в порядке. Firebug работает, ошибок не замечено.
Буква f в сером кружке
Firebug отключен. Кликните по кружку правой кнопкой мыши и снимите галочку с Disable Firebug.
Крестик в красном кружке
Произошла ошибка javascript. Клик на кружке откроет консоль Firebug. Клик на ошибке в консоли переведет Вас на строку скрипта, где произошла ошибка.

Для эксперимента создадим функцию divide, которая делит свой аргумент на некое число, и назначим ее запуск по клику на кнопку:

<html>
	<head>
		<script>
			function divide(number) {	
				var result = number / divisor
				alert(number+"/"+divisor+" = "+result)	
			}
		</script>
	</head>
	<body>
		<h1>Кнопка запуска</h1>
		
               <!-- по клику будет происходить вызов divide(6) -->
		<input type="button" value="Запустить" onclick="divide(6)"/>
	</body>
</html>

Запишите этот код в файл divide.html и запустите. Нажатие на кнопку покажет ошибку при включенном Firebug:

Кликнув на красный текст, мы откроем консоль Firebug, где содержится более подробная информация, включающая текст ошибки и строку, на которой она произошла:

У строчки с ошибкой "divisor not defined" Вы видите плюсик. Он раскрывает последовательность вложенных вызовов, которые привели к печальному результату.

Клик на строке с ошибкой переводит во вкладку Script, где можно увидеть сам скрипт:

Теперь понятно, что ошибка возникла потому, что переменная divisor не определена. Поправим функцию divide так, чтобы она спрашивала ее у посетителя:

function divide(number) {	
    var divisor = prompt("На что делить "+number+"?")

    var result = number / divisor
    alert(number+"/"+divisor+" = "+result)	
}

Поправив код, обновите страничку. Сообщение об ошибке должно исчезнуть.

Теперь, нажимая кнопку "запустить", попробуйте вводить разные числа и сгенерировать таким образом еще одну ошибку .

Вам откроется одна из особенностей языка javascript. Арифметические операции никогда не приводят к ошибкам. Можно делить на ноль, текстовую строку - на что угодно.

Подробнее об особенностях типов данных в javascript написано в статье Базовые типы javascript

В Firebug также есть многие другие возможности, например логирование в консоль командой console.log, встроенный отладчик скриптов и т.п.

Документация по этим возможностям присутствует на сайте http://firebug.ru.

Качать здесь: https://addons.mozilla.org/ru/firefox/addon/1843


Автор: alt5000, дата: 27 октября, 2008 - 14:43

#permalink

А где можно скачать этот дебугер?



Автор: Алекс (не зарегистрирован), дата: 3 ноября, 2008 - 04:49

#permalink

Спасибо за статью !


Автор: Гость (не зарегистрирован), дата: 20 ноября, 2008 - 10:29

#permalink

) спасибо за статью и за весь сайт) мне как начинающему очень помогает)


Автор: BlockOff (не зарегистрирован), дата: 16 января, 2009 - 14:30

#permalink

Я конечно извиняюсь, но у меня не сработал firebug(v. 1.3.0), причем даже после того, как я поставил точку с запятой в конец каждой строки скрипта. И только после того, как я прописал переменную divisor равной 2 скрипт чудесным образом правильно сработал. В чем может быть дело?


Автор: Олег - Гость (не зарегистрирован), дата: 24 января, 2009 - 13:27

#permalink

Спасибки за Firebug и разработчикам и этому сайту за ссылочки.
Я доволен


Автор: NBV (не зарегистрирован), дата: 30 января, 2009 - 14:39

#permalink

Да, вещь отличная, давненько такое искал, а вот вопрос: где можно достать русификатор для него, а то вместо русского текста в скрипте отображаются "козяблики"?


Автор: Eri (не зарегистрирован), дата: 5 февраля, 2009 - 14:47

#permalink

У меня Firebug вообще не показывает ошибки, какой бы код я не запускал. Вместо описанных значков на панели есть только изображение жука. установлены последние версии браузера и приложения. в чем может быть проблема?


Автор: Benjamin, дата: 16 февраля, 2009 - 19:39

#permalink

А включать его не пробывал?


Автор: Opera (не зарегистрирован), дата: 15 марта, 2009 - 19:14

#permalink

А у меня тоже есть Инструменты>>Дополнительно>>Консоль ошибок
или можно чтоб вылазило при возникновении ошибки


Автор: hash8D (не зарегистрирован), дата: 16 марта, 2009 - 19:27

#permalink

Да можно по умолчанию вырублена консолька т.к. тама написано почему)) Над ток врубить и справа в углу есть опции какие показывать ошибки, а какие нет. Тада как ошибка в углу вместо жука скок ошибок вылазит)
Тож поначалу непонял чего их нет)


Автор: hash8D (не зарегистрирован), дата: 16 марта, 2009 - 19:36

#permalink

немного запутанно кажется написал но думаю будет понятно))


Автор: IzumeRoot, дата: 15 апреля, 2009 - 18:57

#permalink

Более полно тема отладки JavaScript причем в разных браузерах раскрыта в статье Отладка JavaScript в Opera, FireFox, IE и Safari


Автор: Илья Кантор, дата: 16 апреля, 2009 - 18:08

#permalink

Отладке и разработке посвящен целый раздел: Редактирование и отладка скриптов.


Автор: Гость (не зарегистрирован), дата: 5 августа, 2009 - 16:14

#permalink

Хочу добавить, что бы вставить breakpoint прямо в исходный код, нужно написать debugger, и когда выполнение дойдет до этой строки firebug остановится.


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2009 - 12:47

#permalink

У меня Firebug 1.4.2, там внизу изображение жука. С ним вести себя надо точно так же - кликнуть правой и поставить галочку "включить на всех страницах". Появится открывшееся окошко Firebugа. Чтобы он работал, а окошко не мешало, можно его свернуть (если нажать кнопочку "оff" окошко естетсвенно тоже пропадет, но фаербаг при этом выключится).


Автор: Satisfaction (не зарегистрирован), дата: 27 сентября, 2009 - 01:51

#permalink

Firebug сразу можно найти не скачивая в Интсрументы>Дополнения>Поиск дополнений (первая иконка) ввести Firebug и установить. Это чтобы не искать его где-то - здесь сразу последняя версия


Автор: Гость (не зарегистрирован), дата: 13 ноября, 2009 - 05:46

#permalink
<html>
    <head>
<script>
          
 
         var i = prompt("что делить ?")
		

        </script>
        <script>
          
  
          function divide(number) {  
  
    
    var divisor = prompt("На что делить "+i+"?")
    
    var result = number / divisor
    alert(i+"/"+divisor+" = "+result)    
}





        </script>
    </head>
    <body>
        <h1>Кнопка запуска</h1>
 
               <!-- по клику будет происходить вызов divide(i) -->

        <input type="button" value="Запустить" onclick="num()"/>	    
        <input type="button" value="Запустить" onclick="divide(i)"/>
    </body>
</html>

вопрос как сделать что бы переменная внести ввод переменной i в отдельную функцию так, что бы она потом была определена и для другой функции.. я так понимаю ее надо сделать глобальной? (знание програминга на уровне написания калькулятора на делфи извините)


Автор: Гость (не зарегистрирован), дата: 16 января, 2010 - 14:34

#permalink

В IE выдается сообщение "Ошибка на странице"


Автор: Гость (не зарегистрирован), дата: 22 июля, 2010 - 17:52

#permalink

у меня firefox 3.6.7 и firebug 1.5.4 сделала все как было сказано выше жучок горит в консоле нужные галочки отмечены.. а ошибку все равно видеть не хочет... Хотя при переходе на различные сайты он периодически выдает какое нибудь предупреждение


Автор: Mark, the spirit of Chrome (не зарегистрирован), дата: 21 апреля, 2011 - 18:58

#permalink

Для Хрома появилась версия. Без дебуггера.


Автор: apple-way (не зарегистрирован), дата: 20 июня, 2011 - 19:30

#permalink

Кстати, наверное имеет смысл упомянуть инструменты для отладки JavaScript которые теперь есть далеко не только в Firefox. Ведь chrome, opera, internet explorer 8 и 9 уже имеют свои отладчики.


Автор: Гость (не зарегистрирован), дата: 8 июля, 2011 - 23:50

#permalink

Здравствуйте!
Подскажите пожалуйста, почему когда я скачала версию Firebug 1.7.3при написании тэгов, они(тэги) не выделяются ни красным, ни синим..Может нужно другую версию скачать? Заранее Спасибо!


Автор: Гость (не зарегистрирован), дата: 31 августа, 2011 - 17:47

#permalink

Должен заметить, что пошаговое выполнение в IE реализовано лучшим образом из всех отладчиков, которые мне доводилось видеть (сказывается "привычка" мелкомягких разрабатывать IDE).
Если бы не "специфика" браузера, он был бы лучшим средством тестирования.
Но увы. Поэтому я пользуюсь всеми четырьмя.
Преимущественно - FireBug, но когда он не даёт адекватной картины, перехожу на IE.
Отладчики Opera и Chrome имеют чертовски неудобный интерфейс, поэтому я использую их только для отлова специфических глюков этих браузеров.


Автор: Questioner, дата: 3 ноября, 2011 - 13:51

#permalink

Ещё: в FF7 нет нижней панели, поэтому огнежук отображается сверху справа, и там же ошибки.


Автор: Гость (не зарегистрирован), дата: 14 ноября, 2011 - 15:32

#permalink

Такая же проблема с отображением русских букв. Кодировку менял не помогает. Может есть какой другой способ?


Автор: Гость (не зарегистрирован), дата: 14 ноября, 2011 - 15:32

#permalink

Такая же проблема с отображением русских букв. Кодировку менял не помогает. Может есть какой другой способ?


 
Текущий раздел
Поиск по сайту
Содержание

Дерево всех статей

Последние темы на форуме
Forum