我找到了一种方法,可以将信息注入Firefox Web控制台,捕获并修改createMessageNode的返回值,修改Web控制台输出:
奇怪的是,返回的元素似乎没有任何可能的方法将它们链接回它们所代表的对象 - 但是当你单击[object Array]时,它总是弹出到右边。这是如何联系的?
作为旁注,当我在面包屑上向上点击以查看堆栈跟踪中的来源时,调试器中不会显示某些项目。这是一个错误,还是编译了一些JS模块,以便永远不会在这里显示它们的内容?这是在数组中添加到控制台行的正确位置,而不是总是说[object Array]等吗?
更新您可以在此分支中查看并运行以上代码:https://github.com/programmin1/DevTools-Tweaks/tree/webconsoleOutputBetter
答案 0 :(得分:1)
通过注入信息你的意思是Services.console.logStringMessage和东西?
https://developer.mozilla.org/en-US/docs/Console_service
如果要访问Web控制台的镶边,请执行以下操作:
var devtools = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
var HUDService = devtools.require("devtools/webconsole/hudservice");
var hud = HUDService.getBrowserConsole();
var btnClear = hud.chromeWindow.document.querySelector('.webconsole-clear-console-button');
btnClear.addEventListener('mouseover', function() {
hud.jsterm.clearOutput(true);
}, false);
var fieldFilter = hud.chromeWindow.document.querySelector('.hud-filter-box');
fieldFilter.value = 'rawr'
此代码访问crhome窗口,您可以访问那里转储的所有文本。上面的这个例子修改了过滤器值,并且还使清除按钮清除了鼠标上的Web控制台,这只是一个如何访问Web控制台的示例,如果你正在做什么