我正在爲我的web應用程序構建一個調試工具,我需要在div中顯示控制檯錯誤。我知道我可以使用我自己製作的控制檯(如對象)並使用它,但爲了將來使用,我需要將所有控制檯錯誤發送到窗口。其實我想捕捉控制檯事件。在頁面內的div中顯示控制檯錯誤和警報
回答
爲了保持控制檯工作:
if (typeof console != "undefined")
if (typeof console.log != 'undefined')
console.olog = console.log;
else
console.olog = function() {};
console.log = function(message) {
console.olog(message);
$('#debugDiv').append('<p>' + message + '</p>');
};
console.error = console.debug = console.info = console.log
怎麼樣簡單的東西:
console.log = function(message) {$('#debugDiv').append('<p>' + message + '</p>');};
console.error = console.debug = console.info = console.log
我投你的答案了這是很聰明的,但它造成的實際。控制檯停止工作 – Mohsen
@DannyBeckett僅使用document.getElementById進行編輯將比2011年的答案更加富有建設性。 –
下面是使用封閉的方式,包含在新的範圍舊控制檯日誌功能。
console.log = (function (old_function, div_log) {
return function (text) {
old_function(text);
div_log.value += text;
};
} (console.log.bind(console), document.getElementById("error-log")));
優雅的答案! – iamwhitebox
我通過使用'div_log.textContent + = text;' – srgsanky
我得到了它的工作'添加'console.error = console.log =(函數...'使我的工作的錯誤。這可以適用於其他'控制檯。[不管]]。 另外@ srgsanky的變化是它的工作需要我的。 –
否則,如果你是在保持log
,warn
和error
彼此分開來講,你可以做這樣的事情(改編自MST的答案):
var log = document.querySelector('#log');
['log','warn','error'].forEach(function (verb) {
console[verb] = (function (method, verb, log) {
return function (text) {
method(text);
// handle distinguishing between methods any way you'd like
var msg = document.createElement('code');
msg.classList.add(verb);
msg.textContent = verb + ': ' + text;
log.appendChild(msg);
};
})(console[verb].bind(console), verb, log);
});
其中#log
是你的HTML元件。變量verb
是'log'
,'warn'
或'error'
之一。然後,您可以使用CSS以可區分的方式設置文本的樣式。請注意,許多此代碼與舊版本的IE不兼容。
檢查。本主題中最佳控制檯解決方案。 –
這沒有捕獲任何仍然發送到Chrome開發工具輸出的錯誤。 – CaptainBli
看到它的行動:https://jsfiddle.net/FrostyZ/chhxav9h/ –
這裏沒有答案考慮控制檯消息傳遞多個參數。例如。 console.log("Error:", "error details")
)。
替換默認日誌函數的函數更好地考慮所有函數參數(例如,通過使用arguments
對象)。下面是一個例子:
console.log = function() {
log.textContent += Array.prototype.slice.call(arguments).join(' ');
}
(該Array.prototype.slice.call(...)
簡單地轉換arguments
對象到一個數組,因此它可以容易地與join()
被級聯。)
當原始日誌應保持工作,以及:
console.log = (function (old_log, log) {
return function() {
log.textContent += Array.prototype.slice.call(arguments).join(' ');
old_log.apply(console, arguments);
};
} (console.log.bind(console), document.querySelector('#log')));
完整的解決方案:
var log = document.querySelector('#log');
['log','debug','info','warn','error'].forEach(function (verb) {
console[verb] = (function (method, verb, log) {
return function() {
method.apply(console, arguments);
var msg = document.createElement('div');
msg.classList.add(verb);
msg.textContent = verb + ': ' + Array.prototype.slice.call(arguments).join(' ');
log.appendChild(msg);
};
})(console[verb], verb, log);
});
(一個用多個參數發送消息的框架的例子是Video.js。但肯定有許多其他的)
編輯:。多個參數的另一個用途是控制檯的格式設置功能(如console.log("Status code: %d", code)
- 1. firefox錯誤控制檯顯示警告?
- 2. 頁面不顯示,控制檯中未顯示錯誤?
- 3. 自定義警報內的警報在android中顯示錯誤?
- 4. logging.info不顯示在控制檯上,但警告和錯誤做
- 5. Dokku在控制檯中顯示錯誤
- 6. 顯示另一個控制器頁面內的錯誤消息
- 7. Rails救援redirect_to並顯示警報而不是錯誤頁面
- 8. 警報控制器不顯示錯誤! Swift-Project
- 9. jQuery的顯示錯誤控制檯
- 10. 如何在jsp頁面中將HTML頁面顯示爲警報?
- 11. 從控制器顯示的警報
- 12. 爲什麼我無法在類的updatepanel頁面中顯示js錯誤警報?
- 13. 錯誤控制檯顯示「GuardMalloc」
- 14. 控制檯輸入錯誤顯示java.lang.NullPointerException
- 15. ROR控制檯顯示語法錯誤
- 16. UIWebView警報不顯示頁面URL?
- 17. Javascript顯示警報,不刷新頁面
- 18. 如何在我的jsp頁面中顯示eclipse控制檯?
- 19. 無法看到該頁面。沒有錯誤顯示在控制檯
- 20. javascript中的websocket - 在控制檯中顯示錯誤
- 21. 在Eclipse中的控制檯中顯示java錯誤
- 22. OSGi控制檯在Glassfish 3.1.1中未顯示管理頁面
- 23. Jenkins在控制檯輸出頁面顯示回顯命令
- 24. 在DIV中顯示頁面
- 25. 分機樹,數據顯示在控制檯中,但不顯示在頁面上
- 26. 在錯誤控制檯中顯示爲未定義的變量
- 27. 如何在頁面中顯示錯誤或警告
- 28. 當用戶離開頁面時顯示在angularjs中的警報
- 29. 在MVC控制器的Ajax調用中不顯示警報
- 30. 如何顯示radrails控制檯中的頁面文本?
它還在工作嗎? –
對我沒有效果我正在使用chrome瀏覽器 – GobSmack
曾在chrome 48 – Sudara