我正在为Firefox编写扩展程序,我需要将一些数据记录到Firebug的控制台。在我的插件范围内,“console”未定义,“window.content.console”也未定义。那么我该如何登录控制台呢?
答案 0 :(得分:16)
由于您没有编写在窗口内执行的Javascript,因此未定义console
。
所以你需要首先引用Firebug扩展:
Firebug.Console.log(str);
答案 1 :(得分:2)
从firefox扩展程序的javascript:
内部登录到控制台Application.console.log(“来自我的Firefox扩展程序的Hello!”);
答案 2 :(得分:1)
据我所知,只有在创建JetPack附加组件时才能这样做。正常调试由Mozilla的Venkman在http://www.mozilla.org/projects/venkman/
完成答案 3 :(得分:1)
Firebug控制台与特定页面相关联,因此即使您设法在那里记录消息也不会很方便。你尝试过Chromebug吗?我没有使用它,但我希望找到一个类似的控制台,用于在那里使用扩展。
您也可以使用常规错误控制台,尽管您无法获得Firebug控制台提供的所有细节。您可以安装Console ^ 2 https://addons.mozilla.org/en-US/firefox/addon/1815以使错误控制台使用起来不那么痛苦。
答案 4 :(得分:1)
如果在您的扩展程序中您可以访问内容Window对象,则可以将其解包,并直接调用控制台方法:
window.wrappedJSObject.console.log('something important');
答案 5 :(得分:1)
甚至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