javascript:如何在弹出警报中显示脚本错误?

问题描述:

我想在弹出的警报中显示脚本错误,而不是在浏览器控制台中显示脚本错误。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

是的,这是正确的方法。

看到这里引用:

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

检查了这一点:http://www.javascriptkit.com/javatutors/error3.shtml。看起来像签名是function(message, url, linenumber)

以防万一有人想用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

<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>