Ответ 1
Поскольку вы не пишете Javascript, который выполняется в окне, console
не определен.
Итак, вам нужно сначала указать расширение Firebug:
Firebug.Console.log(str);
Я пишу расширение для Firefox, и мне нужно записать некоторые данные в консоль Firebug. В рамках моего аддона "консоль" - undefined, а "window.content.console" также undefined. Итак, как мне войти в консоль?
Поскольку вы не пишете Javascript, который выполняется в окне, console
не определен.
Итак, вам нужно сначала указать расширение Firebug:
Firebug.Console.log(str);
Чтобы войти в консоль изнутри расширений firefox javascript:
Application.console.log( "Привет из моего расширения Firefox!" );
Насколько я знаю, вы можете это сделать только в том случае, если вы создаете надстройку JetPack. Обычная отладка выполняется с Venkman из Mozilla по адресу http://www.mozilla.org/projects/venkman/
Консоль Firebug связана с определенной страницей, поэтому было бы не очень удобно, даже если вам удалось зарегистрировать там сообщения. Вы пробовали Chromebug? Я не использовал его, но я бы ожидал найти аналогичную консоль для расширений, которые можно использовать там.
Вы также можете использовать обычную консоль ошибок, хотя вы не получите все тонкости консоли Firebug. Вы можете установить Console ^ 2 https://addons.mozilla.org/en-US/firefox/addon/1815, чтобы сделать с помощью консоли ошибок немного менее болезненным.
Если в вашем расширении вы имеете доступ к объекту Window содержимого, его можно распаковать и напрямую вызвать консольные методы:
window.wrappedJSObject.console.log('something important');
Есть контексты, в которых даже объект Firebug неизвестен, например, если вы пытаетесь вызвать его с боковой панели... в этом случае вам нужно вернуться к исходному окну, чтобы получить объект firebug
var Firebug = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIWebNavigation)
.QueryInterface(Components.interfaces.nsIDocShellTreeItem)
.rootTreeItem
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindow).Firebug;
Затем вы можете войти в свою боковую панель Firebug так:
Firebug.Console.log("foo");
Это описано здесь: https://developer.mozilla.org/en/Code_snippets/Sidebar