Sönke Tesch: Syntaxfehler

Beitrag lesen

else
    if (a.indexOf("c3")!=-1)
       a = a.replace(/c3/,"c1");
    window.location.href = a;
}

Ich für meinen Teil würde mal raten, daß da in der Tat zwei Klammernpaare fehlen, und zwar in den drei Zeilen nach dem 'else'.

Das führt aber nicht zu einem Syntax Error. Ich vermute das es "else if" in einer Zeile heißen muss. Oder else {} als leere Anweisung und dann ein neues if.

Damit begebe ich mich zwar auf's Glatteis, weil ich es nicht ausprobiert habe, aber ich meine mich zu erinnern, daß eine if-Klausel, die in einem Zweig mit Klammern arbeitet auch in allen anderen Zweigen mit Klammern arbeiten muß. Das hat er nicht gemacht, daher die Fehlermeldung.

Das es "else if" in einer Zeile heißen muß, halte ich für äußerst unwahrscheinlich, da Javascript keinen Unterschied zwischen Leerzeichen und leeren Zeichen (wie Zeilenumbrüchen und Tabulatoren) macht. Und außerdem hatte er das schon so, die Zwei-Zeilen-Umstellung oben habe ich verbrochen.

else {} und dann if kann es nicht sein, weil dann das else überflüssig wäre.

Gruß,
  soenk.e