2010-04-09 72 views
23

我想在彈出的警報中顯示腳本錯誤,而不是在瀏覽器控制檯中顯示腳本錯誤。javascript:如何在彈出警報中顯示腳本錯誤?

window.onerror = function() { 
    var message = /* get error messages and put them here */; 
    alert(message); 
    return true; 
}; 
+3

注意'onerror'事件只被IE和Mozilla的支持。 – CMS 2010-04-09 04:01:47

+1

那麼是否有跨瀏覽器解決方案?我的意思是,由webkit – powerboy 2010-04-09 04:05:42

+1

支持的類似功能你的意思是除IE和Mozilla之外還有其他瀏覽器?黨!我需要更多:) – DVK 2010-04-09 04:10:17

回答

39

是的,這是正確的方法。

看到這裏引用:

http://www.javascriptkit.com/javatutors/error2.shtml

和解釋如何看到錯誤這裏的更多細節:

http://www.javascriptkit.com/javatutors/error3.shtml

他們的榜樣:

window.onerror = function(msg, url, linenumber) { 
    alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber); 
    return true; 
} 

如果你願意o在單個彈出窗口中顯示錯誤列表,這很棘手。

由於錯誤1 occue 1,你需要做到以下幾點:

  • window.onerror處理程序商店錯誤的詳細信息在一些陣列
  • 檢查陣列定期 - 無論是通過一個定時器,或window.onerror處理程序的每個第N次呼叫,或兩者。

    當檢查情況發生時,過程整個陣列,顯示爲期望的內容,並空出的陣列

+0

Thx!所以答案是: window.onerror = function(message){ alert(message); 返回true; }; 經過測試! – powerboy 2010-04-09 04:02:25

2

以防萬一有人想用jQuery使用它:

$(window).on("error", function(evt) { 

    console.log("jQuery error event:", evt); 
    var e = evt.originalEvent; // get the javascript event 
    console.log("original event:", e); 
    if (e.message) { 
     alert("Error:\n\t" + e.message + "\nLine:\n\t" + e.lineno + "\nFile:\n\t" + e.filename); 
    } else { 
     alert("Error:\n\t" + e.type + "\nElement:\n\t" + (e.srcElement || e.target)); 
    } 
}); 
+0

試一試jquery ui對話框> https://jqueryui.com/dialog/ – KingRider 2015-08-25 14:36:32

-1
<script>$(window).on("error", function(evt) { 

console.log("jQuery error event:", evt); 
var e = evt.originalEvent; // get the javascript event 
console.log("original event:", e); 
if (e.message) { 
    alert("Error:\n\t" + e.message + "\nLine:\n\t" + e.lineno + "\nFile:\n\t" + e.filename); 
} else { 
    alert("Error:\n\t" + e.type + "\nElement:\n\t" + (e.srcElement || e.target)); 
} 
}); 
</script> 
相關問題