Ich möchte Skriptfehler in einer Popup-Warnung anzeigen, anstatt sie in der Browser-Konsole anzuzeigen.
window.onerror = function() {
var message = /* get error messages and put them here */;
alert(message);
return true;
};
Ja, das ist der richtige Weg.
Siehe die Referenz hier:
http://www.javascriptkit.com/javatutors/error2.shtml
Und erklären Sie, wie Sie weitere Details zum Fehler anzeigen können:
http://www.javascriptkit.com/javatutors/error3.shtml
Ihr Beispiel:
window.onerror = function(msg, url, linenumber) {
alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber);
return true;
}
Wenn Sie eine Fehlerliste in einem einzigen Popup anzeigen möchten, ist dies schwieriger.
Da die Fehler 1 nach 1 auftreten, müssen Sie Folgendes tun:
window.onerror
Handler-Speicherdetails in einem Array enthaltenÜberprüfen Sie das Array regelmäßig - entweder über einen Timer oder bei jedem Aufruf des window.onerror
-Handlers oder beides.
Wenn die Prüfung durchgeführt wird, bearbeiten Sie das gesamte Array, zeigen den Inhalt wie gewünscht an und leeren ein Array
Nur für den Fall, dass jemand es mit jQuery verwenden möchte:
$(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));
}
});
Hilfe zur Lösung dieses Problems
Zeichen, wenn in Name 20 eine Fehlermeldung angezeigt wird, sollten nicht angezeigt werden.
Das Geburtsdatum sollte zwischen 1990 und 2010 liegen
<script>
function validation(){
var errorMsg = new Array();
if(!document.getElementById("name").value){
errorMsg.Push("Please Enter Full Name");
}
if(!document.getElementById("age").value){
errorMsg.Push("Please Enter age");
}
if(!document.getElementById("designation").value){
errorMsg.Push("Please Enter designation");
}
if(!document.getElementById("salary").value){
errorMsg.Push("Please Enter salary");
}
if(!document.getElementById("dob").value){
errorMsg.Push("Please Enter dob");
}
var messageHtml = "";
errorMsg.forEach(function (message) {
messageHtml += "<li>" + message + "</li>";
}
document.getElementById("error").innerHTML = messageHtml;
}
</script>
<style>
#empForm{
position:absolute;
padding-left: 10px;
top: 25%;
left: 55%;
width:18em;
height:20em;
margin-top: -9em;
margin-left: -15em;
border: 1px solid #ccc;
background-color: #f3f3f3;
}
#salary{
margin-left: 48px;
}
#date{
margin-left: 6px;
padding-right: 26px;
}
#designation{
margin-left: 10px;
}
#age{
margin-left: 59px;
}
#name{
margin-left: 47px;
}
#submit{
}
</style>
<html>
<head>
<title>Employee Details</title>
<body>
<div id=empForm>
<h1>Registration Form</h1>
<form name="EmployeeData" action="return validation()">
<div><label>Name </label><input type="text" id="name" name="name"></div></br>
<div><label>Age </label><input type="number" id="age" name="age"></div></br>
<div><label>Designation </label><input type="text" id="designation" name="designation"></div></br>
<div><label>Salary </label><input type="number" id="salary" name="salary"></div></br>
<div><label>Date of Birth </label><input type="date" id="date" name="date"></div></br>
<div id="submit"><center><input type="submit" name="submit" ></center></div>
</div>
</body>
</html>
Schauen Sie sich an Das Ereignis des Windows-Objekts , speziell Zusätzliche Details zu einem Fehler erhalten
Schauen Sie sich dies an: http://www.javascriptkit.com/javatutors/error3.shtml . Sieht aus, als wäre die Signatur function(message, url, linenumber)
.