我想在弹出警报中显示脚本错误,而不是在浏览器控制台中显示。
window.onerror = function() {
var message = /* get error messages and put them here */;
alert(message);
return true;
};
我想在弹出警报中显示脚本错误,而不是在浏览器控制台中显示。
window.onerror = function() {
var message = /* get error messages and put them here */;
alert(message);
return true;
};
是的,那是正确的方式。
参见这里的相关文献:
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;
}
如果您希望在单个弹出窗口中显示错误列表,这会比较棘手。
由于错误一个接一个地发生,您需要执行以下操作:
window.onerror
处理程序将错误详细信息存储在某个数组中定期检查该数组 - 可以通过计时器或每第 N 次调用 window.onerror
处理程序来实现,也可以同时进行。
当进行检查时,请处理整个数组,按所需显示其内容,并清空数组。
如果有人希望与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));
}
});
function(message, url, linenumber)
。<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>
onerror
对于调试非常有用。但是在生产代码中不应该使用它。在脚本正常运行过程中捕获错误,应该使用异常。 - bobince