2010-12-07 40 views

回答

2

參見this thread。 (不完全重複,但相關)。

我還沒有找到讀取控制檯輸出的方法,但是如果您只想捕獲您的:: log()消息,則可以覆蓋.log()方法或創建自己的會將日誌消息寫入另一個容器,然後調用.log()。

var myLogStr=''; 

function myLog(str) 
{ 
    if(console) console.log(str); 
    myLogString+=str+'\n'; 
} 

當然,所有的螢火蟲對象(控制檯等)的存在於DOM,所以你可以跟蹤控制檯窗口的ID和直接獲取內容。

更新

Firebug also offers some events that you can hook into,它可以提供一種方式來攔截錯誤等

+3

哦諷刺 - 我寫了一篇關於這個問題,得票最多的答案... – nickf 2010-12-07 10:39:03

5

沒有自己包裹window.console,我不相信這是可能的。看看源代碼,當調用Firebug的console方法(在主文檔中運行,因此沒有特殊權限)被調用時,它會在主文檔中留下一些對象,然後引發自定義事件。運行在特權插件域中的Firebug偵聽器接收事件,吞噬文檔中留下的對象,並向控制檯面板添加適當的內容,該面板是瀏覽器鑲邊的一部分,因此無法在主要運行的JavaScript中訪問窗口。

對於這個細節我可能是錯的,因爲我只是粗略地看了一下Firebug的源代碼,做了很少的Firefox插件開發,但我認爲這是大致正確的。

5

保羅愛爾蘭創造了應該解決您的問題的console.log的包裝,看看here

相關問題