Я хочу отображать ошибки script во всплывающем предупреждении, а не показывать их в консоли браузера.
window.onerror = function() {
var message = /* get error messages and put them here */;
alert(message);
return true;
};
Я хочу отображать ошибки script во всплывающем предупреждении, а не показывать их в консоли браузера.
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;
}
Если вы хотите отобразить СПИСОК ошибок в одном всплывающем окне, это сложнее.
Так как ошибки занимают 1 на 1, вам необходимо сделать следующее:
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));
}
});
Посмотрите Событие onerror объекта window, в частности Получение дополнительной информации об ошибке
Проверьте это: http://www.javascriptkit.com/javatutors/error3.shtml. Похоже, подпись 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>