#javascript #firebug
#javascript #firebug
Вопрос:
Я пытаюсь стать лучше с JavaScript, и у меня отлично получилось сломать страницу по-настоящему сильно :)))))
Я пытаюсь использовать Firebug для отладки, но поначалу это немного сбивает с толку. Какая из его вкладок используется для отладки JavaScript? Я вижу DOM и Script — что это должно быть?
Моя общая проблема заключается в этой странице: http://www.comehike.com/outdoors/trees/add_spotted_trees.php?hike_id=108
Я создал логин для people: login: test@comehike.com пароль: password
Что я пытался сделать на этой странице, так это заставить ссылки «очистить все» и «очистить последнюю» работать корректно, но я только что создал полную неразбериху 🙂
Что происходит сейчас, так это то, что маркеры размещены, но после «очистить все» маркеры не распознаются и не помещаются в элемент идентификатора «rout_markers».
Есть какие-нибудь подсказки о том, как я могу решить эту проблему или, по крайней мере, двигаться в правильном направлении? Очень признателен!
Ответ №1:
Вы должны следить за вкладкой консоли на предмет ошибок и предупреждений. Например, у вас есть два, которые я видел:
При загрузке страницы:
YUI is not defined
http://www.comehike.com/outdoors/trees/add_spotted_trees.php?hike_id=108
Line 256
После входа в систему и нажатия кнопки Удалить все маркеры:
markers[array_length - 1] is undefined
http://www.comehike.com/outdoors/trees/add_spotted_trees.php?hike_id=108
Line 322
Кроме того, вместо использования alert()
для тестирования вы можете использовать console.log()
, который будет выводиться на консоль. Просто не забудьте удалить их перед запуском в эксплуатацию.
Кроме того, вы можете захотеть посмотреть несколько видеороликов:
http://www.virtuosimedia.com/dev/javascript/15-essential-javascript-video-tutorials
И ознакомьтесь с некоторыми руководствами:
http://www.softwareishard.com/blog/category/firebug-tutorial/
Редактировать
Следуя моему комментарию, вот что я сделал для решения головоломки console.log():
try{console.log();}catch(e){var console=new Object;console={log:function(){ininklklaskjdflk=0;}};};
Ответ №2:
Просто чтобы добавить к тому, что говорит Джаред, использование console.log() — гораздо более эффективный способ отладки, который предупреждает обо всем. Однако, если вы оставите это и перейдете на страницу в браузере, у которого нет консоли, произойдет сбой. Вы можете просто удалить вызовы console.log() или, если вы беспокоитесь о том, чтобы забыть их, вы можете просто использовать этот небольшой фрагмент кода:
if(window.console amp;amp; console.log) console.log("Log Something");
Все, что нужно, это проверить, существует ли консоль, прежде чем отправлять на нее что-либо. Если консоль не существует, оператор if примет значение false, что означает, что console.log («Регистрировать что-либо») никогда не запускается. Если вам нравится, вы также можете написать это следующим образом:
if(window.console amp;amp; console.log) {
console.log("Log Something");
}
Оба означают абсолютно одно и то же.
Комментарии:
1. Если вы используете консоль. регистрируйте исключительно (а не какие-либо другие функции), вместо этого вы можете определить, когда они недоступны, и создать фиктивный console.log(), который, по сути, отправит его в никуда. Это намного проще, чем добавлять это на каждую консоль. войти в журнал вызова.
2. Лучшим способом было бы создать вашу функцию open wrapper, которая бы это делала, или использовать одну из уже существующих, например benalman.com/projects/javascript-debug-console-log
3. Любой способ намного проще, чем всегда использовать громоздкий оператор if, IMO. Я не слышал об этом конкретном решении; спасибо, что предложили его.
Ответ №3:
Панель сценариев позволяет вам просмотреть исходный код всего javascript, запущенного на странице. И вы можете настроить точки останова и посмотреть на переменные….
Панель консоли, вероятно, самая полезная.
Вы используете его для просмотра ошибок и консоли.инструкции журнала (из сообщения Джека Франклина). Вы также можете запустить javascript из «командной строки», чтобы протестировать его на странице.