我需要调试sdk扩展,但是浏览器控制台非常不方便,因为它位于单独的窗口中。所以我找到了一些将输出放置在 webconsole 中的解决方案,但这有点令人不愉快。
const { getTabContentWindow, getActiveTab } = require('sdk/tabs/utils');
const { getMostRecentBrowserWindow } = require('sdk/window/utils');
var tab = getActiveTab(getMostRecentBrowserWindow())
console.error(tab) // browser console
let content = getTabContentWindow(tab)
content.wrappedJSObject.console.log("TAB ", tab); // web console
这里我们在网络控制台中看到消息。但我认为应该有更明确的决定。
UPD。 对我来说,问题是浏览器控制台位于单独的窗口中,对我来说太不方便了。想一想,以下两种解决方案之一是合适的:
- 将输出重定向到网络控制台。
- 以某种方式在 Firefox 窗口中“移动”浏览器控制台。
非常感谢任何帮助。
最佳答案
but browser console is very unconvinient because it is in separate window.
这听起来更像是问题在于您的桌面管理或使用模式,而不是插件 SDK。考虑使用并排窗口排列或将控制台移至不同的显示器。您还可以通过将 --jsconsole
添加到 firefox 参数,在启动期间立即打开它。
Web 控制台实际上仅适用于特定于页面的内容。要调试全局事物,例如插件脚本,您应该使用浏览器控制台。
另请注意,您的方法在 e10s 下会崩溃。
关于javascript - Firefox addon sdk 浏览器控制台便利性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39436082/