Torsten Eekhof: Was mag Netscape an meinen Cookies nicht?

Hallo zusammen,

ich habe ein Problem das nur beim Netscape auftritt, und zwar folgendes: Das ganze Javascript ist ein HTML Seitennavigator, der beim Aufrufen per Cookie checken soll, wo er beim letzten Schliessen stehengeblieben ist. Hierfür existiert ein Objekt namens lese.zeichen, das per Cookie geschrieben wird. Ich habe die Passage gepostet, die Netscape einfach überließt und nicht mal einen Javascriptfehler meldet. Die Cookieroutinen (CookieHolen) laufen auf dem Netscape, werden an anderen Stellen auch noch benutzt.

if(start == 0)
{
   alert("Drin");
   if(document.cookie)
   {
      alert("Vorsicht Cookie");
      var lesestart = CookieHolen("startup");
      if((lesestart != null)&&(lesestart != -1))
       {
       lese = new Lesezeichen(lesestart);
       parent.lernplatz.document.location = struktur[lesestart].datei;
       ErzeugeAnzeige(0);
       }
      else
lese = new Lesezeichen(-1);
    }
    else
    {
alert("Kein Cookie");
lese = new Lesezeichen(-1);    
    }
    alert("Draussen");
    start = 1;      
}

Die alert sind nur zur Erläuterung. Netscape kommt bis zum alert("Drin"); alles andere Überließt er einfach. Mit lese = new... wird das Lesezeichen neu gesetzt, tja im Netscape halt nicht und deswegen funktioniert alles weitere nicht.

Vielen Dank schon mal vorweg

Torsten

  1. Hi,

    Ich habe die Passage gepostet, die Netscape einfach überließt und nicht mal einen Javascriptfehler meldet.

    [...]

    Die alert sind nur zur Erläuterung. Netscape kommt bis zum alert("Drin"); alles andere Überließt er einfach.

    überliest er wirklich _alles_, führt also weder den alert() im if- noch den im else-Teil aus? Dann hast Du irgendwo einen Fehler, den Dir Netscape sicher auch nennt. Hast Du "javascript:" in die Location-Zeile eingetippt?

    Cheatah

    1. Hi,

      Ich habe die Passage gepostet, die Netscape einfach überließt und nicht mal einen Javascriptfehler meldet.
      [...]
      Die alert sind nur zur Erläuterung. Netscape kommt bis zum alert("Drin"); alles andere Überließt er einfach.

      überliest er wirklich _alles_, führt also weder den alert() im if- noch den im else-Teil aus? Dann hast Du irgendwo einen Fehler, den Dir Netscape sicher auch nennt. Hast Du "javascript:" in die Location-Zeile eingetippt?

      Cheatah

      Ja, kein weiterer alert wird mit ausgeführt und die Javascript Konsole von Netscape ist leer. Wenn ich versuche meine Navigation zu benutzen meldet Netsape "lese is not defined", was auch zeigt, das er den Teil ab if(document.cookie) überliest, da dort lese definiert wird.

      Gruss Torsten

      1. Hi,

        Ja, kein weiterer alert wird mit ausgeführt und die Javascript Konsole von Netscape ist leer.

        hm. Probier doch mal,

        else
        lese = new Lesezeichen(-1);

        durch

        else
        { lese = new Lesezeichen(-1); }

        zu ersetzen.

        Cheatah

        1. ok ok - hier die komplette seite !!

          <html>
          <head>
          <title>Untitled Document</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

          <script language="JavaScript">
          function Abfrage()
            {
             var Wert = "";
             if(document.cookie)
             {
              if (Wertende == >1) open("test2.htm")
             }

          }

          </script>
          </head>
          <body bgcolor="#FFFFFF" onLoad="Abfrage()">
          <p>Seite Monitoring SeSup </p>
          <p> </p>
          </BODY>
          </HTML>

          1. Hi,

            ok ok - hier die komplette seite !!

            zum Glück ist sie kurz :-)

            if (Wertende == >1) open("test2.htm")

            Wertende ist gar nicht definiert, also ist das ganze etwas sinnfrei... insbesondere aber ist "== >1" falsch. Was willst Du prüfen, "ist gleich" oder "ist größer als"?

            <body bgcolor="#FFFFFF" onLoad="Abfrage()">

            Und in dieser Zeile war der Fehler?

            Cheatah

        2. hm. Probier doch mal,

          else
          lese = new Lesezeichen(-1);

          durch

          else
          { lese = new Lesezeichen(-1); }

          zu ersetzen.

          Cheatah

          das brachte keinen Erfolg, denn hätte ja auch schon das alert("Vorsicht Cookie"); erscheinen müssen, aber in diese if-Anweisung geht er ja auch nicht rein. Ich habe aus Verzweifelung das Script mal bis auf diesen Punkt verkürzt:
          if(start == 0)
          {
          alert("Drin");
          if(document.cookie)
              {lese = new Lesezeichen(-1);}
          else
          { alert("Kein Cookie");
            lese = new Lesezeichen(-1);
          }
          alert("Draussen");
          start = 1;      
          }

          selbst jetzt weigert sich Netscape mein Lesezeichen zu setzen, dies funktioniert im übrigen einwandfrei, denn wenn ich nur das Lesezeichen setze oder das document.cookie mit z.B. start==0 ersetze, funktioniert das Navigieren prächtig. Mit dem Lesezeichen sreche ich einen Array an Index steht in Klammern, -1 wird abgefangen und eine Startseite wird gezeigt, ansonsten bekomme ich aus dem Cookie einen Wert von 0 bis maximale Anzahl der Seiten. Dies nur zur Erklärung.
          Der Internet Explorer macht die ganze Zeit genau das was man erwartet, auch bei den Änderungen gibt es keine Überraschungen.
          Im Netscape 6 klappt es übrigens auch alles wunderbar(lassen wir die optischen Mängel mal beiseite - stylesheet mißachtung).

          mfg

          torsten

          1. selbst jetzt weigert sich Netscape mein Lesezeichen zu setzen,

            Hallo,

            nur eine Idee gerade: Netscape brauchte bis dato immer 3 Instanzen der URL um Cookies zu setzen. Also nicht meineHome.de, sonder www.meine Home.de.
            Ich weiß gar nicht, ob bei Misachtung da ein Fehler zurückkam. Aber wenn er nix setzt und IE schon...

            Gruß
            Denis

            1. Hallo,

              nur eine Idee gerade: Netscape brauchte bis dato immer 3 Instanzen der URL um Cookies zu setzen. Also nicht meineHome.de, sonder www.meine Home.de.
              Ich weiß gar nicht, ob bei Misachtung da ein Fehler zurückkam. Aber wenn er nix setzt und IE schon...

              Gruß
              Denis

              Die Domain des Cookies wird automatisch belegt also der default Wert, ist erforderlich, da die Navigation später auf verschiedenen Servern von Anwendern eingesetzt wird, die dies nicht ändern können(keine Javascriptkenntnisse). Der default Wert ist dann der volle Domainname, korregiert mich wenn ich falsch liege!

              mfg

              torsten