[英]Show JavaScript console errors on the page
假設我有以下代碼:
<script>
function billy() {
alert('muahahahaha!');
}
function suzzy() {
return;
}
</script>
和這樣的按鈕(帶有未定義的onclick處理程序):
<input type='button' value='click me' onClick='FRANK()' />
單擊該按鈕時,開發人員控制台中將顯示以下內容:
函數'FRANK()'未定義。
如何將該消息存儲在變量中並將其顯示在頁面上?
document.getElementById('prompt').innerHTML = log;
所以它看起來像:
<div id='prompt'>
Function 'FRANK()' has not been defined.
</div>
如果要在div中顯示頁面的任何錯誤,可以使用全局事件處理程序onerror :
window.onerror = function(e){
document.getElementById('prompt').innerHTML = e.toString();
}
如果您的目標是攔截控制台中瀏覽器寫入的所有內容,而不僅僅是錯誤,我不確定它是否可以直接實現,因為瀏覽器不會使用可訪問的console
功能。
但是你可以通過掛鈎所有全局事件處理程序來做很多事情:
我認為@ dystroy的答案就足夠了,但是如果你想要正確的錯誤處理,你應該使用try
和catch
語句來代替..
function throw_msg() {
try {
var a = '';
alert(b);
}
catch(throw_error) {
document.getElementById('error-box').innerHTML=throw_error.message;
setTimeout(
function() {
document.getElementById('error-box').innerHTML='';
}, 2000);
}
}
上述代碼的說明:
我們首先創建一個將在單擊按鈕時調用的函數,並且當您單擊該按鈕時, try
塊中的代碼將被執行,如果它有任何錯誤,我們將使用catch
語句拋出錯誤,其中使用throw_error.message
打印錯誤消息,最后,我們使用setTimeout
清除2000
的錯誤消息,即2秒
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.