Daktari: Finde gemeldeten Fehler im Script nicht

Mein Programm funktioniert im FF einwandfrei, nur im IE wird mir immer an der gleichen Stelle ein Fehler angezeigt. Die Meldung ist z.B. diese hier:

Meldung: Nicht abgeschlossene Zeichenfolgenkonstante
Zeile: 3
Zeichen: 27
Code: 0
URI: http://…….

Meldung: Nicht abgeschlossene Zeichenfolgenkonstante
Zeile: 9
Zeichen: 9
Code: 0
URI: http://…….

usw...

Diese Fehler sollen alle in der Index2.php vorliegen. Dort sind die entsprechenden Zeilen aber allesamt LEER! Was soll das? Wie finde ich heraus welches Script hier wirklich vom IE moniert wird?

  1. Hallo,

    Mein Programm funktioniert im FF einwandfrei, nur im IE wird mir immer an der gleichen Stelle ein Fehler angezeigt. Die Meldung ist z.B. diese hier:

    Meldung: Nicht abgeschlossene Zeichenfolgenkonstante
    Zeile: 3
    Zeichen: 27
    Code: 0
    URI: http://…….

    Meldung: Nicht abgeschlossene Zeichenfolgenkonstante
    Zeile: 9
    Zeichen: 9
    Code: 0
    URI: http://…….

    usw...

    Diese Fehler sollen alle in der Index2.php vorliegen. Dort sind die entsprechenden Zeilen aber allesamt LEER! Was soll das? Wie finde ich heraus welches Script hier wirklich vom IE moniert wird?

    Wie sehen, denn die vorherigen Zeilen aus in der index2.php? Nicht abgeschlossene Zeichenfolgenkonstante klingt erstmal nach vergessenem " oder '. Eventuell ist firefox intelligenter als IE und merkt, dass das Zeichen vergessen wurde und übersieht diesen Patzer von dir.
    martachen

  2. Tach!

    Wie finde ich heraus welches Script hier wirklich vom IE moniert wird?

    Stückweise vorgehen wäre eine Möglichkeit. Fang an mit einem leeren Script und gib immer mehr kleine/große Code-Häppchen hinzu. Irgendwann wird es den Fehler geben, dann weißt du ungefähr woran es liegt. Von voll nach leer geht natürlich auch, oder temporär Teilstücke entnehmen.

    dedlfix.

  3. Wie finde ich heraus welches Script hier wirklich vom IE moniert wird?

    Welche IE-Version verwendest du?

    Neuere IEs (ab Version 8) haben einen eingebauten JavaScript-Debugger und zeigen bei einem Fehler die Stelle im Code korrekt an. Je neuer der IE, desto besser. Für ältere IEs gibt es die DebugBar und den Script Debugger.

    Wenn du unbedingt einen älteren IE testen musst, so hilft es ggf. auch, den neuesten IE (derzeit Version 10) im IE-7-Kompatibilitätsmodus zu testen, um JavaScript zu debuggen. Das lässt sich ebenfalls über die Developer-Tools einstellen.

    Mathias

    1. Wenn du unbedingt einen älteren IE testen musst, so hilft es ggf. auch, den neuesten IE (derzeit Version 10) im IE-7-Kompatibilitätsmodus zu testen, um JavaScript zu debuggen. Das lässt sich ebenfalls über die Developer-Tools einstellen.

      Darauf bin ich mal ganz mies reingefallen, weil ein console.log-Aufruf zwar im IE10 funktioniert hat, in älteren Versionen, aber noch keine Konsole verfügbar war und somit einen Fehler verursacht hat.

      1. Hallo,

        Darauf bin ich mal ganz mies reingefallen, weil ein console.log-Aufruf zwar im IE10 funktioniert hat, in älteren Versionen, aber noch keine Konsole verfügbar war und somit einen Fehler verursacht hat.

        Die Richtung des logischen Schlusses ist hier entscheidend. Von der Funktionsfähigkeit im IE10-als-IE7 sollte nicht auf die Funktionsfähigkeit im IE7 geschlossen werden. Das wollte ich nicht suggerieren.

        Der IE10 kann aber genutzt werden, um *einige* Fehler, die im IE7 auftreten mögen, besser debuggen zu können – sofern diese *auch* im IE10-als-IE7 auftreten. Wenn der Fehler dann für den IE10-als-IE7 beseitigt ist, sollte in einem echten IE7 getestet werden, ob der Fix erfolgreich war.

        Der IE10 sollte also nur als Debugger verwendet werden, um bessere Exceptions und Stacktraces zu bekommen.

        Grüße,
        Mathias

    2. Wie finde ich heraus welches Script hier wirklich vom IE moniert wird?

      Welche IE-Version verwendest du?

      Neuere IEs (ab Version 8) haben einen eingebauten JavaScript-Debugger und zeigen bei einem Fehler die Stelle im Code korrekt an. Je neuer der IE, desto besser. Für ältere IEs gibt es die DebugBar und den Script Debugger.

      Wenn du unbedingt einen älteren IE testen musst, so hilft es ggf. auch, den neuesten IE (derzeit Version 10) im IE-7-Kompatibilitätsmodus zu testen, um JavaScript zu debuggen. Das lässt sich ebenfalls über die Developer-Tools einstellen.

      Mathias

      Ich habe das Debugging eingeschaltet, es hat aber nichts geändert.
      Es ist so dass ich hier etwas in ein Eingabefeld eingebe, und dann via Ajax eine Auswahlliste generiert wird. Nach dem diese Funktion ausgeführt wurde wird dann der Fehler angezeigt, aber noch nicht beim Laden der Seite.
      Ich werde also nicht gefragt ob ich die Seite debuggen möchte. Und wenn ich auf den Reiter "Script" gehe springt der Cursor beim Klicken der einzelnen Fehlermeldungen an Stellen wo definitiv kein Fehler vorliegt.

      Was mache ich denn noch falsch?

      1. Hallo,

        Ich habe das Debugging eingeschaltet, es hat aber nichts geändert.

        Was mache ich denn noch falsch?

        Setze einen Breakpoint an die Stelle mit dem Ajax-Aufruf und klick dich dann Schritt-für-Schritt durch (debuggen ;-)). Schau was mit den Variablen passiert und an welcher Stelle es nicht mehr weiter geht.

        Viele Grüße
        Siri