romy: Wie erkenne ich, wo der Fehler liegt

Hi Forumer,

Wenn man Javascriptfehler im IE bekommt, steht immer eine Zeilen und Zeichennummer. Worauf beziehen sich diese?
(habe leider nur den IE zur Verfügung)
Ich kann mit einem Syntaxfehler in Zeilen, wo kein Javascript steht nichts anfangen, wie kann man so etwas herausfinden?

Bin etwas irritiert...

ciao
romy

  1. Bin etwas irritiert...

    nicht nur du .. das geht den meisten entwicklner so. oft ist der fehler, wenn nicht genau in der zeile, in der umgebung. viel wichtiger ist eigentlich der rest der fehlermeldung, der bessere rückschlüsse auf das eigentlich quellcode-problem gibt...

    wenn du ein problem hast, poste es doch hier.

    gruß hein

  2. Hallo romy !

    Wenn man Javascriptfehler im IE bekommt, steht immer eine Zeilen und Zeichennummer. Worauf beziehen sich diese?

    Also, diese Zeilen&spalten/zeichennummern sind der "ort" des fehlers. Ich gebe dir mal ein Beispiel:

    <html>
    <head>
    <script language="JavaScript">
    <!--
     window.open("da.htm", "fenster", "width=10,height=20
    // -->
    </script>
    <!-- ... -->

    FEHLER: NICHT ABGESCHLOSSENE ZEICHENFOLGENKONSTANTE (oder so was ähnliches .... ;-)
            IN ZEILE 5 ZEICHEN 54.

    ist also klar:

    1 - <html>
    2 - <head>
    3 - <script language="JavaScript">
    4 - <!--
    5 -  window.open("da.htm", "fenster", "width=10,height=20
      ->123456789012345678901234567890123456789012345678901234567890
      -]         10        20        30        40        50  ^FEHLER
    6 - // -->
    7 - </script>
    8 - <!-- ... -->

    (habe leider nur den IE zur Verfügung)

    sehr schlecht.

    Ich kann mit einem Syntaxfehler in Zeilen, wo kein Javascript steht nichts anfangen, wie kann man so etwas herausfinden?

    Du besorgst dir einen HTML-Editor oder sonstwas, was Zeilennummern anzeigt. Z.B. ist  z.B. Phase5, was einigermaßen beliebt ist (<www.meybohm.de> oder http://www.qhaut.de/modules.php?name=Downloads&d_op=viewdownloaddetails&lid=22&ttitle=).

    Bin etwas irritiert...

    Das mit den Zeichenangaben ist aber sehr sehr sinnvoll. Wie du hoffentlich weißt, oder gleich wissen wirst ;-) - gibt es von der "Anzeige her" 2 Arten von fehlern:
      - der Browser stellt den Fehler schon beim einlesen des Scriptes fest und gibt eine
        Fehlermeldung aus
      - Laufzeitfehler: Erst beim Ausführen des Scriptes entdeckt der Browser einen Fehler,
        kann dann logischerweise nicht sagen, wo sein ursprung ist, nur, wo er als erstes
        auftrat. Dafür gibt es sogenannte DEBUGGER.
        Beispiel: var bild = new Image(); bild.src = "irgendwas.gif";
                  document.getElementById("bla").firstChild.innerText = bild.src;
        (ich denke mal, dass der Browser hier den Fehler erst in der 2ten Zeile feststellt)

    benji

  3. Hi ,

    danke Euch beiden
    ich weiss, dass die Fehler nicht immer dort auftreten, wo sie angegeben werden, allerdings muss man ja zumindest eine Möglichkeit haben. Wenn mein Javascriptcode jetzt per externes JS eingebunden wird, wo suche ich dann?

    In diesem speziellem Fall, lag das Problem woanders. Es gabe eine Fehlerhafte SQL-Abfrage, die das Script zu stehen gebracht hat und demzufolge waren einige Sachen nicht geladen, die das dann fehlerhafte javascript benötigte.

    Bei PHP oder ähnlichen dingen würde ich einfach Zeile für Zeile auskommentieren, aber bei Javascript ist so etwas irgendwie nicht so einfach möglich habe ich den Eindruck, vorallendingen, wenn man mehrer externe Scripte einbindet. Wo fange ich dann an?

    ciao
    romy

    1. Hi,

      ich weiss, dass die Fehler nicht immer dort auftreten, wo sie angegeben werden, allerdings muss man ja zumindest eine Möglichkeit haben. Wenn mein Javascriptcode jetzt per externes JS eingebunden wird, wo suche ich dann?

      1. Der IE fängt bei den Zeilen mit 0 zu zählen an, Editoren oft mit 1 - also schon mal eine Zeile weiter unten gucken als angegeben.
      2. Bei externen Scripts guckst Du in der entsprechenden Zeile des externen Scripts nach (plus 1, wenn Dein Editor anders zählt als der IE)

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    2. Hallo romy,

      wußte gar nicht, daß so'n Crack wie Du Hilfe braucht ;)

      Wo fange ich dann an?

      erst mal den Debugger vom IE starten. Ich finde, der gibt meistens die richtige Zeile aus (gelb markiert) - leider findet er oft auch gar nichts ;)

      2. Mozilla aufspielen - wo ist das Problem?

      3. Ich könnte mir vorstellen, daß Dein Problem (ich kenne es auch sehr gut) in Schleifen auftritt. Habe den Eindruck, daß da jeder Durchgang mitgezählt wird. Also suche nach Schleifen und Funktionsaufrufen und mache dort Testausgaben.

      Gruß, Andreas

      --
      Das Praktikum ist um - und nun?