0

我找到了一种将信息注入 Firefox Web Console 的方法,捕获并修改 createMessageNode 的返回值,修改 web-console 输出:

调试 devtools 修改

奇怪的是,返回的元素似乎没有任何可能的方式将它们链接回它们所代表的对象 - 但是当您单击 [object Array] 时,它总是会弹出到右侧。这是如何连接的?

作为旁注,当我向上单击面包屑以查看它在堆栈跟踪中的来源时,调试器中未显示某些项目。这是一个错误,还是一些 JS 模块被编译为永远不会在这里显示它们的内容?这是将数组添加到控制台行而不是总是说 [object Array] 等的正确位置吗?

更新您可以在此分支中查看并运行上面的代码:https ://github.com/programmin1/DevTools-Tweaks/tree/webconsoleOutputBetter

4

1 回答 1

1

注入信息是指Services.console.logStringMessage 之类的吗?

https://developer.mozilla.org/en-US/docs/Console_service

如果您想访问 Web 控制台的 chrome,请执行以下操作:

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 控制台的示例,如果你正在这样做的话

于 2014-02-11T17:53:49.913 回答