nxvc: Wie Javascript Fehler ermitteln?

Hallo zusammen,

mit Javascript kenne ich mich so gut wie garnicht aus. Jetzt benutze ich eine Software für meine Webseite namens "vbulletin". In dieser Software sind .js Dateien enthalten.

Habe nun etwas das Design geändert meiner Homepage und bekomme an manchen Stellen der Webseite im Internetexplorer eine Fehlermeldung, die so aussieht:

Probleme mit dieser Webseite verhindert eventuell, dass die Seite richtig dargestellt oder ausgeführt wird.....
Zeile: 187
Zeichen: 2
Fehler: 'this.controlobj' ist Null oder kein Objekt
Code: 0
Url: http://www.webseite.com/blog.php?b=57

Naja, was soll ich sagen, .. die Seite wird eigentlich richtig angezeigt und funktioniert auch, aber ich hätte doch schon gerne diese hässliche IE Fehlermeldung weg.
Ich arbeite eigentlich immer nur mit Firefox und dort läuft halt auch alles. Habe für Firefox auch verschiede developer-tools zum Fehler suchen, allerdings weiß ich auch nicht wie ich Fehler suchen soll die nur im IE auftauchen.

Jetzt ist da meine Frage, wie gehe ich vor um diese JS Fehler im IE zu korrigieren? Wie geht man da ran wenn im IE ein solcher Fehler auftaucht? Denn diese Fehlermeldung des IE sagt mir garnichts, ich müsste ja auch wissen von welcher JS Datei der Fehler überhaupt verursacht wird und warum. Im Prinzip hatte ich ja auch nur das Design mittels CSS leicht umgebaut und JS scheint da einige Probleme damit zu haben. Wie muss ich vorgehen wenn ein Fehler auftaucht?

  1. Zeile: 187
    Zeichen: 2
    Fehler: 'this.controlobj' ist Null oder kein Objekt
    Code: 0
    Url: http://www.webseite.com/blog.php?b=57

    Der IE zeigt dir die Zeilennummer vermutlich eines eingebundenen Skriptes (+1), allerdings sagt er nicht welches.

    Ich arbeite eigentlich immer nur mit Firefox und dort läuft halt auch alles. Habe für Firefox auch verschiede developer-tools zum Fehler suchen, allerdings weiß ich auch nicht wie ich Fehler suchen soll die nur im IE auftauchen.

    Du kennst die Fehlerkonsole?

    Jetzt ist da meine Frage, wie gehe ich vor um diese JS Fehler im IE zu korrigieren? Wie geht man da ran wenn im IE ein solcher Fehler auftaucht? Denn diese Fehlermeldung des IE sagt mir garnichts, ich müsste ja auch wissen von welcher JS Datei der Fehler überhaupt verursacht wird und warum. Im Prinzip hatte ich ja auch nur das Design mittels CSS leicht umgebaut und JS scheint da einige Probleme damit zu haben. Wie muss ich vorgehen wenn ein Fehler auftaucht?

    Erst musst du schauen welche JS Dateien eingebunden werden, wenn du Glück hast geschieht dies nur über <script src=.... >, dann guckst du ob diese Zeilenummer existiert und in der darüber (oder darunter, ich bin jetzt nicht 100% sicher) ein Befehl steht, der mit der Fehlermeldung einen Sinn ergibt. Tja und dann musst du debuggen, ich vermute mal das du vielleicht eine ID eines Elementes umbenannt hast, aber das ist nur eine Vermutung.

    Struppi.

  2. Mahlzeit nxvc,

    Habe nun etwas das Design geändert meiner Homepage

    Anscheinend nicht nur das Design, sondern auch die Struktur.

    Probleme mit dieser Webseite verhindert eventuell, dass die Seite richtig dargestellt oder ausgeführt wird.....
    Zeile: 187
    Zeichen: 2
    Fehler: 'this.controlobj' ist Null oder kein Objekt
    Code: 0
    Url: http://www.webseite.com/blog.php?b=57

    Das bedeutet, dass in der Zeile 187 des in dieser Seite vorhandenen (oder hinzugeladenen) Javascript-Codes auf ein Objekt zugegriffen wird, das es nicht gibt (oder das Null ist).

    Schau dort also hinein und behebe den Fehler. Wenn Du das nicht kannst, darfst Du gerne konkrete Fragen stellen und dabei relevanten Quellcode posten oder auf solchen verweisen. Glaskugeln sind leider gerade aus. Kommen auch nicht wieder rein.

    Jetzt ist da meine Frage, wie gehe ich vor um diese JS Fehler im IE zu korrigieren?

    Fehler suchen -> Fehler finden -> Fehler beheben.

    Wie geht man da ran wenn im IE ein solcher Fehler auftaucht?

    Man debuggt ihn. Ggf. (bzw. eigentlich in jedem Fall, da der IE derartige Funktionen ja nicht besitzt) unter Zuhilfenahme geeigneter Webdeveloper-Tools.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Hi,

    Zeile: 187
    Zeichen: 2
    Fehler: 'this.controlobj' ist Null oder kein Objekt
    Code: 0
    Url: http://www.webseite.com/blog.php?b=57

    Naja, was soll ich sagen, .. die Seite wird eigentlich richtig angezeigt und funktioniert auch, aber ich hätte doch schon gerne diese hässliche IE Fehlermeldung weg.

    entweder befindet sich der Code, der zum Fehler geführt hat, in Zeile 187 der o.g. URL, oder in Zeile 186 *irgend* einer eingebundenen oder erzeugten Ressource. Der IE ist bezüglich der Präzision seiner Fehlermeldungen so doof, wie man es allgemein von ihm erwartet.

    Habe für Firefox auch verschiede developer-tools zum Fehler suchen, allerdings weiß ich auch nicht wie ich Fehler suchen soll die nur im IE auftauchen.

    Manuell. Es gibt zwar Debugger für den IE, aber diese erscheinen mir bisher eher hinderlich als nützlich. Vielleicht kann Dir ja jemand anders einen Tipp geben, wie Du sie zielführend einsetzt.

    Jetzt ist da meine Frage, wie gehe ich vor um diese JS Fehler im IE zu korrigieren? Wie geht man da ran wenn im IE ein solcher Fehler auftaucht?

    Werde selbst zum JScript-Interpreter und versuche mit Hilfe von Debug-Ausgaben herauszufinden, was da eigentlich wann passiert. Minimiere idealerweise das Problem.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Wenn gar nichts anderes hilft, suche "volltext" nach controlobj, bis du die Zeile gefunden hast.

      Ein typischer IE-Fehler ist, die Variable nicht ordentlich mit var deklariert zu haben oder im falschen Kontext.

      Was auch sein kann ist, dass der IE Objekte gar nicht automatisch erzeugt oder anders benennt. Der übliche Workaround ist, vor der Benutzung eines Objekts erst mit 'if' prüfen ob es exisistiert und im 'else' dann eine alternative Bearbeitung programmieren.

      Die Zeilennummern im IE werden ein bisschen logischer, wenn man möglichst wenig eingebetteten Code benutzt, sondern möglichst viel in eine eigene JS-Datei auslagert. Also für alles kleine Methoden in der JS-Datei schreiben, die dann aus dem HTML-Code nur aufgerufen werden.