0

我找到了一種方法來注入信息到Firefox的Web控制檯,捕獲和修改createMessageNode的返回值,修改Web的控制檯輸出:Firefox Devtools中的Web控制檯對象在哪裏?

Debugging devtools modifications

奇怪的是,返回的元素似乎沒有有任何可能的方式將它們鏈接回它們代表的對象 - 但是當你點擊[object Array]時,它總是彈出到右邊。這是如何連接的?作爲一個側面說明,當我在麪包屑上向上點擊以查看堆棧跟蹤的來源時,某些項目在調試器中不顯示。這是一個錯誤,還是一些JS模塊編譯,以避免在這裏顯示其內容?這是將數組添加到控制檯行而不是總是說[object Array]等的正確位置?

更新你可以看到在這上面的分支運行此代碼:通過注射方式,你的意思是Services.console.logStringMessage和東西https://github.com/programmin1/DevTools-Tweaks/tree/webconsoleOutputBetter

回答

1

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控制檯的一個例子,如果你正在做什麼

+0

很好的例子,HUDService記錄在哪裏?我更新了我的問題,以鏈接所討論的代碼,我在這裏顯示有關控制檯日誌中對象的更多信息。 – NoBugs

+0

thx男人。我無法找到關於它的任何文檔。我從mxr(mxr.mozilla.org)得到了這個。但我曾嘗試在mdn上寫一些關於它的內容:https://developer.mozilla.org/en-US/docs/Tools/Browser_Console#HUDService – Noitidart

+0

嘿,你想在MDN上啓動一個HUDService文檔頁面嗎?我會幫你解決我所知道的問題,但看起來你正在深入挖掘,並且可以爲此做出很多貢獻。 – Noitidart

相關問題