【问题标题】:Where are the Web Console objects in Firefox Devtools?Firefox Devtools 中的 Web 控制台对象在哪里?
【发布时间】:2014-03-06 05:01:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript debugging firefox-addon javascript-debugger firefox-developer-tools


    【解决方案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 控制台

    【讨论】:

    • 很好的例子,HUDService 记录在哪里?我更新了我的问题以链接有问题的代码,我在控制台日志中显示有关对象的更多信息。
    • 谢谢男人。我根本找不到任何关于它的文档。我从 mxr (mxr.mozilla.org) 得到这个。但我确实尝试在 mdn 上写一些关于它的内容:这里:developer.mozilla.org/en-US/docs/Tools/…
    • 嘿,您想在 MDN 上创建 HUDService 文档页面吗?我会用我所知道的来帮助你,但看起来你正在深入挖掘并且可以为它做出很多贡献。
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 2022-11-20
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    相关资源
    最近更新 更多