我需要调试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
这里我们在webconsole中看到消息。但我认为应该有更明确的决定。
UPD。 对我来说问题是浏览器控制台位于单独的窗口中,对我来说太不方便了。想一想,两种解决方案中的一种是合适的:
感谢任何帮助。
答案 0 :(得分:2)
但是浏览器控制台非常不方便,因为它位于单独的窗口中。
这听起来更像问题在于您的桌面管理或使用模式而不是插件sdk。考虑使用并排的窗口布置或将控制台移动到不同的监视器。您还可以在启动期间通过将--jsconsole
添加到firefox参数来立即打开它。
Web控制台仅适用于特定于页面的内容。要调试全局内容,例如插件脚本,您应该使用浏览器控制台。
另请注意,您的方法将在e10s下破解。