jan: Denkfehler mit if/else

Hallo leute,

ich schreibe und schreibe und schreibe es wieder um, aber ich steh heute irgendwie tierisch auf'm schlauch...

das problem:
ich hab die unten angegebene datei mir zusammen gebastelt. nun soll er nach und nach das javascript durchgehen und aus dem cookie lesen welche seite er aufrufen soll - ich hab das mit den seiten also in einer if/else-schleife notiert. nun will er aber grundsätzlich nicht die datei aufrufen die im cookie steht sondern er ruft immer die erste in der if kette auf und kommt garnicht erst bist zur zweiten.

also, wer mir da helfen könnte bzw. vorschläge für verbesserung und/oder andere ansätze machen könnte, dem wär ich sehr zu dank verpflichtet.

gruß,
jan.

ps: wär nett, wenn ihr die antwort als mail (jan_wi@hotmail.com) an mich schicken könntet, weil ich nich so oft im forum bin, danke.

das ist die datei:

<html>
<head>
<title>Weiterleitung</title>
<script language="JavaScript">
<!--
function goPage() {
     var NamederDatei ="";
      if(document.cookie)
        {
         Namestart = document.cookie.indexOf("=") +1;
         Nameende = document.cookie.indexOf(";");
         if(Nameende == -1)
          {
           Nameende = document.cookie.length;
           NamederDatei = document.cookie.substring(Namestart,Nameende);
          }
           if(NamederDatei="Normale Startseite")
             {
             window.location.href="index.html";
              return
             }
           if(NamederDatei="Programmieren")
             {
             window.location.href="program/program.htm";
             return
             }
           if(NamederDatei="Nachschlagen")
             {
             window.location.href="nach/nach.htm";
             return
             }
           if(NamederDatei="Aktiv")
             {
             window.location.href="aktiv/aktiv.htm";
             return
             }
           if(NamederDatei="Aktuell")
             {
             window.location.href="aktuell/aktuell.htm";
             return
             }
           if(NamederDatei="Intern")
             {
             window.location.href="intern/intern.htm";
             return
             }
           if(NamederDatei="News")
             {
             window.location.href="news.htm";
             return
             }

}
    else{window.location.href="index.html"}
return NamederDatei;
}

//-->
</script>
</head>
<body onLoad="javascript:goPage()" text="#000000" bgcolor="#FFFFFF">
Seite wird geladen ...
</body>
</html>

  1. Hi,
    nur zwei Sachen, die dir nicht wirklich helfen:
    1. Das ist hier ein Forum und wenn du eine Antwort willst musst du wieder hierhin zrueckkehren. Das mit "Antwort bitte PM" ist hier nicht gerne gesehen.
    2.fuer deine if(NamederDatei=="...")... kannst du besser eine switch Anweisung nehemen, siehe : <../../tebg.htm#a3>

    Jan

  2. Hallo Jan, Hallo Forum.

    Immer wieder tauchen hier Postings auf mit etwa diesem Inhalt: "Hallo, mein Javascript funktioniert nicht, hier der Code:..." Das ist etwa so, als würde Microsoft im Usenet die Frage posten "Warum funktioniert das nicht?", gefolgt von 10 Millionen Zeilen Windows-Quellen. Was ich damit sagen will: Zu den grundlegenden Fähigkeiten eines Programmierers gehört es auch, Fehler im eigenen Code finden zu können. Das ist doch in den meisten Fällen gar nicht so schwer, es braucht nur etwas Geduld und Überlegung. Du sagst selbst, daß die erste if-Anweisung grundsätzlich ausgeführt wird. Woran könnte das wohl liegen? Versuche, den fehlerhaften Code immer weiter zu vereinfachen, bis eine klare Fehlfunktion des JS-Interpreters offensichtlich ist. Da das natürlich nicht geht, wirst Du dabei den Fehler finden (ist übrigens ein ganz billiger ;)).

    Gruß
    Steffen

  3. Hallo

    if(NamederDatei="Normale Startseite")

    Du machst in der if-Bedingung eine Zuweisung. Das Ergebnis dieser Operation ist ein wahrer Ausdruck (naemlich wiederum der zugewiesene Wert, also "Normale Startseite"). Folglich wird der Code innerhalb des if-Block ausgefuehrt.
    Du willst offensichtlich einen Test auf Gleicheit machen. Der Operator dafuer lautet "==", nicht "=".

    So lange