Debugging 如何从扩展登录到Firebug?
我正在为Firefox编写一个扩展,我需要将一些数据记录到Firebug的控制台。在我的插件范围内,“console”未定义,“window.content.console”也未定义。那么如何登录控制台呢?据我所知,只有在创建JetPack附加组件时,您才能登录控制台。正常的调试是由Mozilla的Venkman在Firebug控制台上完成的,Firebug控制台与特定的页面相关联,因此即使您设法在那里记录消息,也不会很方便。你试过Chromebug吗?我没有使用它,但我希望找到一个类似的控制台供扩展使用Debugging 如何从扩展登录到Firebug?,debugging,firefox,logging,console,firebug,Debugging,Firefox,Logging,Console,Firebug,我正在为Firefox编写一个扩展,我需要将一些数据记录到Firebug的控制台。在我的插件范围内,“console”未定义,“window.content.console”也未定义。那么如何登录控制台呢?据我所知,只有在创建JetPack附加组件时,您才能登录控制台。正常的调试是由Mozilla的Venkman在Firebug控制台上完成的,Firebug控制台与特定的页面相关联,因此即使您设法在那里记录消息,也不会很方便。你试过Chromebug吗?我没有使用它,但我希望找到一个类似的控制台
您还可以使用常规错误控制台,尽管您无法获得Firebug控制台提供的所有细节。您可以安装Console ^2,以使使用错误控制台的痛苦减少一点。由于您没有编写在窗口中执行的Javascript,因此未定义
Console
因此,您需要首先引用Firebug扩展:
Firebug.Console.log(str);
如果在扩展中您有权访问内容窗口对象,则可以将其展开,并直接调用控制台方法:
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");
这里记录了这一点:要从firefox扩展的javascript内部登录到控制台:
Application.console.log(“来自我的Firefox扩展的你好!”) 哎呀,
Firebug
未定义!我已经安装了Firebug,但似乎你不能再这样做了Firebug
是未定义的
@TahaJahangir,只需打开当前页面的Firebug,然后按f5;)试试这个Application.console.log(“你好,来自我的Firefox扩展!”);window.wrappedJSObject未定义