2010-10-05 3 views
3

Я пишу библиотеку canvas javascript/HTML5, чтобы предоставить основные элементы графического интерфейса для приложений веб-аудио.Javascript + Firebug console.log(), как не получить исключения?

Существует небольшой демонстрационный скрипт, который создает виджеты с библиотекой и собирает их в графическом интерфейсе. Вы можете найти его @http://bitterspring.net/webshifter/

Проблема в том, что, кажется, правильно работать на Chrome и Firefox 3.6 - 4.0, но в последних случаях, только с поджигатель. Без firebug сценарий, кажется, ничего не видит на экране, а с firebug он делает.

Единственные фрагменты кода, связанные с firebug, - это оператор console.log, который я использую для отслеживания поведения библиотеки. Но эти утверждения не должны влиять на браузер, не поддерживающий firebug, как я узнал на форумах Firebug. Что может помешать сценарию примера работать в этих случаях?

Код библиотеки + пример недавно передан на http://github.com/janesconference/KievII, между прочим.

EDIT: Кажется, что консоль не определена, console.log() выдает исключение. Есть ли способ сохранить строки ведения журнала кода и не получать исключения? (Да, можно было бы проверить, если консоль = не определено, но есть лучший путь!?)

EDIT: Это трюк, кажется (Font)

if (typeof console=="undefined"){console={log:function(A){var B=false;if(B){alert(A)}}}} 
+3

Вы проверили консоль ошибок Javascript? Ссылки на «console.log» в коде, запущенном в окне без «консольного» объекта, будут определенно бросать исключения. – Pointy

+0

Итак, чтобы заставить его работать в любом браузере, я должен удалить вызовы console.log? – janesconference

+0

проверено в firefox 3.6 без firebug. проблема в том, что «консоль» не определена. Всегда думал, что запись через консоль была прозрачной: | – janesconference

ответ

2

справа, console объект не является доступный во всех браузерах по умолчанию.

Этот код:

if (typeof console=="undefined"){console={log:function(A){var B=false;if(B){alert(A)}}}} 

- в настоящее время отключает поддержку console в веб-консоли Firefox 4, так как он пытается впрыснуть console объект при открытии и не будет этого делать, если страница уже определен console объект.

Интересная обертка для console, которая имеет дело с этой проблемой: http://benalman.com/projects/javascript-debug-console-log/, хотя я не пробовал это сам.

+0

На самом деле он работает с FF 4. Что вы подразумеваете под словом «он пытается ввести объект консоли при открытии и не сделает этого, если страница уже определила объект консоли»? – janesconference

+0

@janesconference: «это» в этом предложении относится к веб-консоли. В то время, когда я писал, что я думал, что если вы запустите этот код на странице и затем откройте веб-консоль, сообщения console.log() будут по-прежнему отображаться в вашей обертке. Я не помню, тестировал ли я это утверждение. – Nickolay

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