Как вы входите в Firebug из расширения?

Я пишу расширение для Firefox, и мне нужно записать некоторые данные в консоль Firebug. В рамках моего аддона "консоль" - undefined, а "window.content.console" также undefined. Итак, как мне войти в консоль?

Ответы

Ответ 1

Поскольку вы не пишете Javascript, который выполняется в окне, console не определен.

Итак, вам нужно сначала указать расширение Firebug:

Firebug.Console.log(str);

Ответ 2

Чтобы войти в консоль изнутри расширений firefox javascript:

Application.console.log( "Привет из моего расширения Firefox!" );

Ответ 3

Насколько я знаю, вы можете это сделать только в том случае, если вы создаете надстройку JetPack. Обычная отладка выполняется с Venkman из Mozilla по адресу http://www.mozilla.org/projects/venkman/

Ответ 4

Консоль Firebug связана с определенной страницей, поэтому было бы не очень удобно, даже если вам удалось зарегистрировать там сообщения. Вы пробовали Chromebug? Я не использовал его, но я бы ожидал найти аналогичную консоль для расширений, которые можно использовать там.

Вы также можете использовать обычную консоль ошибок, хотя вы не получите все тонкости консоли Firebug. Вы можете установить Console ^ 2 https://addons.mozilla.org/en-US/firefox/addon/1815, чтобы сделать с помощью консоли ошибок немного менее болезненным.

Ответ 5

Если в вашем расширении вы имеете доступ к объекту Window содержимого, его можно распаковать и напрямую вызвать консольные методы:

window.wrappedJSObject.console.log('something important');

Ответ 6

Есть контексты, в которых даже объект 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