webentwicklung-frage-antwort-db.com.de

javascript: Wie werden Skriptfehler in einem Popup-Alarm angezeigt?

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;
};
29
powerboy

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

47
DVK

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));
    }
});
2
user1398498

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

  • Alle sollten in einem Popup-Fenster angezeigt werden

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

0
fitness suggest
0
Adriaan Stander

Schauen Sie sich dies an: http://www.javascriptkit.com/javatutors/error3.shtml . Sieht aus, als wäre die Signatur function(message, url, linenumber).

0
Bialecki