Marc Pompl: Warum bringt dieses Script den Browser manchmal zum Absturz?

Also, ich habe das unten aufgefuehrte Script geschrieben. Es funktioniert auch, Jedoch passiert es manchmal(!?), dass, wenn ich es aktiviere, sich Netscape beendet ohne irgendeine Meldung. Warum? Liegt das an einem Fehler in Netscape? Oder habe ich etwas falsch gemacht? Ich habe auch schon unterschiedliche Versionen von Netscape verwendet ohne jeglichen Erfolg.
Ich bitte um schnelle Hilfe!!!

--- Hier ausschneiden ---

<HTML>

<HEAD>

<TITLE>Ein Menue in JavaScript</TITLE>

<STYLE type="text/css">
all.Menue { font-family:Century Gothic, Arial; font-size:12pt; color:black; }
</STYLE>

<SCRIPT language="JavaScript">
<!--
  OrdnerBild = 'folder.gif'
  EintragMenue = new Array( "1", "FOLDER", "Ordner 1", "javascript:zeigeMenue('1.1')",
       "1.1", "URL", "Link 1", "http://welcome.to/lynorics",
       "1", "FOLDER", "Ordner 2", "javascript:zeigeMenue('1.2')",
       "1.2", "FOLDER", "Ordner 3", "javascript:zeigeMenue('1.2.1')",
       "1", "IMAGEURL", "mail.gif", "mailto:marc.pompl@metronet.de?subject=LinkMenu" );
  function zeigeMenue(Ebene)
  {
   var Gesamt = '';
   var EbeneMatch = '';
   var Eintrag;
   var EintragTyp = '';
   var i;
   var j;
   for(i=0;i<EintragMenue.length;i+=4)
   {
    EbeneMatch = '^'+EintragMenue[i];
    if(Ebene.match(EbeneMatch))
    {
     Eintrag = '';
     EintragTyp = EintragMenue[i+1];
     for(j=0;j<EintragMenue[i].match(/./g).length;j++)
      Eintrag=Eintrag+'  ';
     if(EintragTyp.match(/\bFOLDER\b/))
     {
      Eintrag=Eintrag+'<IMG SRC='+OrdnerBild+' width=12 height=12><A HREF="'+EintragMenue[i+3]+'">'+EintragMenue[i+2]+'</A><BR>';
      Gesamt=Gesamt+Eintrag;
     }
     if(EintragTyp.match(/\bURL\b/))
     {
      //Eintrag=Eintrag + '<A HREF="'+EintragMenue[i+3]+'">'+EintragMenue[i+2]+'</A><BR>';
      //Gesamt=Gesamt+Eintrag;
     }
     if(EintragTyp.match(/\bIMAGEURL\b/))
     {
      Eintrag=Eintrag + '<A HREF="'+EintragMenue[i+3]+'"><IMG src="'+EintragMenue[i+2]+'" ALT="'+EintragMenue[i+3]+'"></A><BR>';
      Gesamt=Gesamt+Eintrag;
     }
    }
   }
   if(document.all)
    document.all.MicrosoftMenue.innerHTML = Gesamt;
   else if(document.layers)
   {
    document.NetscapeMenue.document.open();
    Gesamt = '<SPAN class="Menue">' + Gesamt + '</SPAN>';
    document.NetscapeMenue.document.write(Gesamt);
    document.NetscapeMenue.document.close();
   }
  }
// -->
</SCRIPT>

</HEAD>

<BODY>

Dies ist eine kleine Demonstration eines Menues mit JavaScript.
<HR>

<DIV id="MicrosoftMenue" class="Menue">
</DIV>

<LAYER id="NetscapeMenue">
</LAYER>

<SCRIPT language="JavaScript">
<!--
  window.setTimeout("zeigeMenue('1')",1000);
// -->
</SCRIPT>

</BODY>

</HTML>

  1. Macht Netscape gerne vor allem in Verbindung mit
    CSS , irgendwo ein ; oder }  vergesssen oder nen
    Tag nicht sauber geschlossen , schon verabschiedet
    er sich (ich vermute du Benutzt NT oder ? ) .

    Also die Source noch mal ganz genau überprüfen.. rgendwo ist sicher sowas , sorry ich hab da keine Lust
    zu bin immer schon bedient wenn ich selbst sonen Fehler
    hab.

    viel Spass dabei.. *g*

    gruss
    Jens

    1. Macht Netscape gerne vor allem in Verbindung mit
      CSS , irgendwo ein ; oder }  vergesssen oder nen
      Tag nicht sauber geschlossen , schon verabschiedet
      er sich (ich vermute du Benutzt NT oder ? ) .

      Also die Source noch mal ganz genau überprüfen.. rgendwo ist sicher sowas , sorry ich hab da keine Lust
      zu bin immer schon bedient wenn ich selbst sonen Fehler
      hab.

      viel Spass dabei.. *g*

      gruss
      Jens

      Tja, ich habe den Sourcecode genau durchgeschaut
      und sogar das, was JavaScript mir fuer den Layer erzeugt, aber leider bin ich nicht fuendig geworden... :<

  2. Hallo Marc

    Also, ich habe das unten aufgefuehrte Script geschrieben. Es funktioniert auch, Jedoch passiert es manchmal(!?), dass, wenn ich es aktiviere, sich Netscape beendet ohne irgendeine Meldung. Warum? Liegt das an einem Fehler in Netscape? Oder habe ich etwas falsch gemacht? Ich habe auch schon unterschiedliche Versionen von Netscape verwendet ohne jeglichen Erfolg.
    Ich bitte um schnelle Hilfe!!!

    ich benutze Netscape 4.05
    Dein script erzeugt bei mir folgende Fehlermeldungen:

    JavaScript Error: file:/c:/christoph/Homepage/test/absturz.htm, line 38:

    unterminated string literal.

    Eintrag=Eintrag+'<IMG SRC='+OrdnerBild+' width=12 height=12><A
    .............................................^
    (ich denke, hier ist ein Hochkomma zu viel...)

    sowie:

    zeigeMenue is not defined.

    (da ich den code selbst nicht überprüft habe, musst du hier selbst schauen, was das Problem sein könnte)

    Vielleicht können dir diese Meldungen bei der Fehlersuche behilflich sein.

    Liebe Grüsse
    Christoph

    1. Hallo

      Dein script erzeugt bei mir folgende Fehlermeldungen:
      JavaScript Error: file:/c:/christoph/Homepage/test/absturz.htm, line 38:
      unterminated string literal.
            Eintrag=Eintrag+'<IMG SRC='+OrdnerBild+' width=12 height=12><A
      .............................................^
      (ich denke, hier ist ein Hochkomma zu viel...)

      Nee, das kommt nur durch Copy&Paste. In Marcs Posting wurde diese Zeile hinter dem A umbrochen, weil dort eben grad ein Leerzeichen ist, sodass es mit HREF auf der naechsten weitergeht. Beim Einfuegen in den Editor wird dies aber als harter Return betrachtet. Ersetze ihn durch ein Leerzeichen, dann geht's. (Weiter unten ist auch noch so eine Zeile.)

      sowie:
      zeigeMenue is not defined.

      Das ist nur ein Folgefehler.

      Also Marc, bei mir stuerzt nichts ab. Beim Aufruf der Datei sind die Links Ordner 1 und Ordner 2 zu sehen. Klicke ich auf Ordner 1, passiert nichts. Bei Klick auf Ordner 2 wird auch Ordner 3 eingeblendet. Bei diesem neuen Bild passiert bei Ordner 2 und 3 nichts, bei Ordner 1 verschwindet der Ordner 3 wieder, sodass wieder das Ausgangsbild zu sehen ist. Ich hab mir Deinen Code nicht reingezogen, aber ich glaube, das ist nicht ganz was Du wolltest, oder?

      Calocybe

      1. Also Marc, bei mir stuerzt nichts ab. Beim Aufruf der Datei sind die Links Ordner 1 und Ordner 2 zu sehen. Klicke ich auf Ordner 1, passiert nichts. Bei Klick auf Ordner 2 wird auch Ordner 3 eingeblendet. Bei diesem neuen Bild passiert bei Ordner 2 und 3 nichts, bei Ordner 1 verschwindet der Ordner 3 wieder, sodass wieder das Ausgangsbild zu sehen ist. Ich hab mir Deinen Code nicht reingezogen, aber ich glaube, das ist nicht ganz was Du wolltest, oder?

        Hm.. bei mir stürzte Netscape auch nach vielem rumgeclicke
        eigentlich nicht ab.. ansonsten wundert mich die Funktion
        (das gleiche wie oben beschrieben) auch etwas wenn ich
        das Array sehe..  
        aber bevor ich son Script nur bis ins kleinste nachverfolge
        schreib ich lieber ein eigenes.. bzw. verbesser mein Menu das da sicher noch Bedarf hat  :))

        gruss
        Jens

  3. So, ich habe einfach mal eine geaenderte Version geschrieben, die ohne layer und div auskommt,. sondern mit Frames arbeitet. Und das auch noch stabil! Daher ist eine Hilfe nicht mehr noetig. Trotzdem herzlichen Dank an die, die sich die Muehe gemacht haben.   :>

    Lynorics der Graye zu Vinsalt