Lucky: Klappforum????

Servus,

möchte gerne ein klappmenü erstellen, nur leider bekomm ich es einfach nicht hin. Ich hoffe, das mir eienr von euch weiter helfen kann. der html-Code wird duch durch 4 HTML-Datein includet (durch die Forum.php). ich babe komentare eingefügt, damit man weiß wo die neue Html-Datein anfängt.

Hier nun der Quelltext:

<html>
<head>
<title>JavaScript Tree Control</title>
<style>
body{
 font: 10pt Verdana,sans-serif;
 color: navy;
}
.trigger{
 cursor: pointer;
 cursor: hand;
}
.branch{
 display: none;
 margin-left: 16px;
}
</style>
<script language="JavaScript">
var openImg = new Image();
openImg.src = "pluszeichen.gif";
var closedImg = new Image();
closedImg.src = "minuszeichen.gif";

function showBranch(branch){
 var objBranch = document.getElementById(branch).style;
 if(objBranch.display=="block")
  objBranch.display="none";
 else
  objBranch.display="block";
}

function swapFolder(img){
 objImg = document.getElementById(img);
 if(objImg.src.indexOf('minuszeichen.gif')>-1)
  objImg.src = openImg.src;
 else
  objImg.src = closedImg.src;
}
</script>
</head>
###################################################################
<!--Anfang-->
<!--ErsterTeil-->
<table width="100%" border="2" cellspacing="1" cellpadding="2" bgcolor="$border">
  <tr bgcolor="#333333" ><!--bgcolor="$bghead"  -->
    <td class="title" width="10">&nbsp;</td>
    <td class="title">Board:</td>
    <td class="title" align="center" width="40">Themen:</td>
    <td class="title" align="center" width="40">Antworten:</td>
    <td class="title" align="center" width="25%">Letzte Antwort :</td>
  </tr>
<!--ZweiterTeil -->
  <tr bgcolor="$pagebg"><td colspan="6"></td></tr>
  <tr bgcolor="#999999"> <!--bgcolor="$bgcat" -->
    <td colspan="6"><span class="category_big">&nbsp; &#8226; $kathname</span> <span class="category"> $info </span></td>
  </tr>
   <tr bgcolor="$pagebg"><td colspan="6"></td></tr>
<!--DritterTeil -->
<tr>
     <!--bgcolor="$bg1" -->
  <td width="22" bgcolor="#CCCCCC" align="center">$icon</td>
       <!--bgcolor="$bg2" -->
<td bgcolor="#CCCCCC" >$boardname <br><br><span class="small">$boardinfo<br>$moderators</span></td>
       <!--bgcolor="$bg1" -->
  <td  align="center" bgcolor="#CCCCCC">$anztopics</td>
         <!--bgcolor="$bg2" -->
  <td  align="center" bgcolor="#CCCCCC">$anzposts</td>
         <!--bgcolor="$bg1" -->
  <td  align="center" bgcolor="#CCCCCC"><a href="$postlink">$date $time</a><br>$poster $member</td>
<!--VierterTeil -->
</table><br>
<!--Ende-->
#####################################################################
<br>
<br>
<br>
<div class="trigger" onClick="showBranch('branch1');swapFolder('folder1')">
 <img src="pluszeichen.gif" border="0" id="folder1">
   <tr bgcolor="$pagebg"><td colspan="6"></td></tr>
  <tr bgcolor="$bgcat">
    <td>so soll es sein</td>
  </tr>
   <tr bgcolor="$pagebg"><td colspan="6"></td></tr>
</div>
 <span class="branch" id="branch1">
  <tr>
  <td width="22" bgcolor="$bg1" align="center">$icon</td>
  <td bgcolor="$bg2">$boardname <br><br><span class="small">$boardinfo<br>$moderators</span></td>
  <td bgcolor="$bg1" align="center">$anztopics</td>
  <td bgcolor="$bg2" align="center">$anzposts</td>
  <td bgcolor="$bg1" align="center"><a href="$postlink">$date $time</a><br>$poster $member</td>
</tr><br>
 </span>

die dunkel/hellgrauen spaltern werden öfters ausgegeben, mit unterschiedlichen werten. ich hoffe, das mir einer von euch helfen kann, damit ich dieses problem gelöst bekomme.

mfg Lucky

  1. Mahlzeit,

    <html>

    Es fehlt die Angabe des http://de.selfhtml.org/html/allgemein/grundgeruest.htm#dokumenttyp@title=Dokument-Typs.

    <style>

    Es fehlt die Angabe des http://de.selfhtml.org/html/transit/stylesheets.htm#definieren@title=Stylesheet-Typs.

    <script language="JavaScript">

    Es fehlt die Angabe des http://de.selfhtml.org/html/transit/scripts.htm#definieren@title=Script-Typs. Das "language"-Attribut ist veraltet.

    </head>
    ###################################################################
    <!--Anfang-->
    <!--ErsterTeil-->
    <table width="100%" border="2" cellspacing="1" cellpadding="2" bgcolor="$border">

    Es fehlt das <http://de.selfhtml.org/html/allgemein/grundgeruest.htm#html@title=<body>>-Tag.

    Bitte validiere Dein Dokument, um erstmal die gröbster Fehler zu beseitigen.

    die dunkel/hellgrauen spaltern werden öfters ausgegeben, mit unterschiedlichen werten. ich hoffe, das mir einer von euch helfen kann, damit ich dieses problem gelöst bekomme.

    Grundsätzliche Frage: wieso benutzt Du für ein Navigationsmenü eine Tabelle? Im Normalfall bieten sich dafür <http://de.selfhtml.org/css/layouts/navigationsleisten.htm@title=mit CSS formatierte Listen> an.

    MfG,
    EKKi

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

      Mahlzeit,

      <html>

      Es fehlt die Angabe des http://de.selfhtml.org/html/allgemein/grundgeruest.htm#dokumenttyp@title=Dokument-Typs.

      <script language="JavaScript">

      Es fehlt die Angabe des http://de.selfhtml.org/html/transit/scripts.htm#definieren@title=Script-Typs. Das "language"-Attribut ist veraltet.

      Sorry, aber das verstehe ich nicht, der type wird doch angegeben und zwar hiermit:

      var openImg = new Image();
      openImg.src = "/images/pluszeichen.gif";
      var closedImg = new Image();
      closedImg.src = "/images/minuszeichen.gif";

      function showBranch(branch){
       var objBranch = document.getElementById(branch).style;
       if(objBranch.display=="block")
        objBranch.display="none";
       else
        objBranch.display="block";
      }

      function swapFolder(img){
       objImg = document.getElementById(img);
       if(objImg.src.indexOf('/images/minuszeichen.gif')>-1)
        objImg.src = openImg.src;
       else
        objImg.src = closedImg.src;
      }

      oder?

      ###################################################################

      <!--Anfang-->
      <!--ErsterTeil-->
      <table width="100%" border="2" cellspacing="1" cellpadding="2" bgcolor="$border">

      Es fehlt das <http://de.selfhtml.org/html/allgemein/grundgeruest.htm#html@title=<body>>-Tag.

      der Body-Tag ist vorhanden und steht in der Index.php, darin wird die forum.php includet.

      »»

      Grundsätzliche Frage: wieso benutzt Du für ein Navigationsmenü eine Tabelle? Im Normalfall bieten sich dafür <http://de.selfhtml.org/css/layouts/navigationsleisten.htm@title=mit CSS formatierte Listen> an.

      ich wollte die tabelle nutzen, da sie vorgegeben ist. ich habe leider nicht so die ahnung von css oder javascript.

      es handelt sich dabei im ein Webspellboard, bei dem ich die beschreibung der kategorien eklappen kann, damit das board nicht zu lang wird.

      hier ein link zu dem board:

      http://hdba0407.hd.funpic.de/index.php?site=forum

      nun möchte ich folgendes:
      1.) wenn ich auf • Public Boards2 drücke, dann soll test2 ausgeklappt/eingeklappt werden
      2.) wenn ich auf • Public Boards drücke, soll ich test3 und mainboard öffnen
      usw.

      ich hoffe, das dies jetzt einw enig verständlicher war.

      mfg lucky

      1. Mahlzeit,

        <script language="JavaScript">

        Es fehlt die Angabe des http://de.selfhtml.org/html/transit/scripts.htm#definieren@title=Script-Typs. Das "language"-Attribut ist veraltet.

        Sorry, aber das verstehe ich nicht, der type wird doch angegeben und zwar hiermit:

        Liest Du die Links auch? Das "http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=type"-Attribut ist für <script>-Bereiche zwingend.

        Was Du meinst, ist der eigentliche Javascript-Code. Wenn der Browser nun mehrere Scriptsprachen beherrscht und Du ihm nicht sagst, welche Scriptsprache Du meinst, woher soll er dann wissen, ob und wie er den Code zwischen den <script>-Tags interpretieren kann bzw. soll?

        ###################################################################

        <!--Anfang-->
        <!--ErsterTeil-->
        <table width="100%" border="2" cellspacing="1" cellpadding="2" bgcolor="$border">

        Es fehlt das <http://de.selfhtml.org/html/allgemein/grundgeruest.htm#html@title=<body>>-Tag.

        der Body-Tag ist vorhanden und steht in der Index.php, darin wird die forum.php includet.

        Wenn Du ein Problem mit Javascript hast, dann poste den gesamten relevanten HTML- und Javascript-Code - und nur diesen ... so, wie er im Browser ankommt. Was wann wo in welcher PHP-Datei includet wird oder nicht, spielt für Javascript-Probleme keine Rolle. Relevant ist nur das, was beim Browser ankommt (oder eben nicht).

        In Deinem ursprünglichen Quelltext war kein <body>-Tag vorhanden, deswegen wies ich darauf hin. Hellsehen kann hier keiner, also nimm bitte nicht an, dass dies oder jenes "doch selbstverständlich ist" o.ä.

        Grundsätzliche Frage: wieso benutzt Du für ein Navigationsmenü eine Tabelle? Im Normalfall bieten sich dafür <http://de.selfhtml.org/css/layouts/navigationsleisten.htm@title=mit CSS formatierte Listen> an.

        ich wollte die tabelle nutzen, da sie vorgegeben ist. ich habe leider nicht so die ahnung von css oder javascript.

        Wenn Du keine oder "nicht so die" Ahnung von http://de.selfhtml.org/css/index.htm@title=CSS und http://de.selfhtml.org/javascript/index.htm@title=Javascript hast, aber trotzdem damit herumbasteln willst, eigne Dir bitte die Grundlagen an. Dieses Projekt und dieses Forum heißen nicht ohne Grund "SELFHTML" - Du wirst hier in den meisten Fällen kompetente Hilfe erhalten, wenn Du die Forumssuche benutzt, nachvollziehbare Problembeschreibungen lieferst und Bereitschaft zeigst, die Dir gegebenen Hilfen anzunehmen und lernwillig zu sein ("Keine Arme - keine Kekse").

        es handelt sich dabei im ein Webspellboard, bei dem ich die beschreibung der kategorien eklappen kann, damit das board nicht zu lang wird.

        Was auch immer ein "Webspellboard" ist. Ich dachte, es geht hier um eine einklappbare Navigation und habe Dir einen Link zum entsprechenden Bereich in SELFHTML genannt. Dort wird ausführlich erläutert, wie man gut aussehende und funktionale Navigationsmenüs erstellen kann (die natürlich auch beliebig ein- und ausklappbar sein können).

        nun möchte ich folgendes:
        1.) wenn ich auf • Public Boards2 drücke, dann soll test2 ausgeklappt/eingeklappt werden

        Stichworte: http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick@title=onclick, http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=getElementById(), http://de.selfhtml.org/css/eigenschaften/positionierung.htm#display@title=display und http://de.selfhtml.org/css/eigenschaften/positionierung.htm#visibility@title=visibility.

        MfG,
        EKKi

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

          Wenn der Browser nun mehrere Scriptsprachen beherrscht und Du ihm nicht sagst, welche Scriptsprache Du meinst, woher soll er dann wissen, ob und wie er den Code zwischen den <script>-Tags interpretieren kann bzw. soll?

          Das type-Attribut ist eigentlich völlig überflüssig. Ohne Angabe wird nämlich immer javascript verwendet. Wenn du einen Browser kennst, bei dem das anders ist, würde mich interessieren, welcher das sein soll.

          Klar, in der HTML 4.01 Strict-DTD ist das type-Attribut als "required" definiert, warum auch immer. Die Browser lesen aber meines Wissens ohnehin keine DTDs. Browser kennen nur eine begrenzte Menge erlaubter DOCTYPE-Deklarationen, und je nach DOCTYPE wird das Verhalten des Browsers ein bisschen anders. Aber mit dem, was in der DTD steht, hat wenig zu tun.

          Gruß, Don P

          1. Hallo,

            Das type-Attribut ist eigentlich völlig überflüssig. Ohne Angabe wird nämlich immer javascript verwendet. Wenn du einen Browser kennst, bei dem das anders ist, würde mich interessieren, welcher das sein soll.

            »JavaScript« ist nunmal im Wandel, und auch wenn z.B. HTML 5 den Fallback auf text/javascript kodifiziert und das type-Attribute optional macht, ist es in Zeiten von ECMAScript Edition 2, E4X und JavaScript 1.7 gar nicht so klar, was die nächsten Jahre bringen werden. Sicher werden die Browser nicht den Fallback grundlegend ändern, aber das type-Attribut wird wieder an Bedeutung gewinnen.

            Browser wie IE kennen mehrere Scriptsprachen; IE wählt zwar offenbar standardmäßig JScript, aber spezifiziert ist das anscheinend nirgendwo, stattdessen spricht Microsoft von einer rein heuristischen Wahl und empfiehlt, die Scriptsprache immer anzugeben.

            Klar, in der HTML 4.01 Strict-DTD ist das type-Attribut als "required" definiert, warum auch immer. Die Browser lesen aber meines Wissens ohnehin keine DTDs.

            Wieso sollten sie auch DTDs lesen. Sie implementieren die HTML-Spezifikation. Die DTD drückt die Regeln der Grammatik maschinenlesbar aus. Solange man nicht die konkrete Syntax eines Dokuments gegen die allgemeinen Regeln prüfen will, besteht da natürlich kein Zusammenhhang.

            Das heißt aber nicht, dass die Browser nicht die Grammatik implementiert haben. Sie haben dies und sind darüber hinaus noch ziemlich fehlertolerant.

            Derlei Regelungen gibt es viele in der Spezifikation. Das hat seinen Grund und es hat im Allgemeinen auch seinen Grund, sie zu befolgen - auch wenn die drei Browser, für die man gerade entwickelt, in den Versionen, für die man gerade entwickelt, einen Wasserkopf an Fehlertoleranz haben und von ganz bestimmten Default-Werten ausgehen, wo die derzeit gültige HTML-Spezifikation vorschreibt, dass keine Default-Werte angenommen werden sollen...

            Browser kennen nur eine begrenzte Menge erlaubter DOCTYPE-Deklarationen, und je nach DOCTYPE wird das Verhalten des Browsers ein bisschen anders. Aber mit dem, was in der DTD steht, hat wenig zu tun.

            Ja, klar, aber wie kommst du vom type-Attribut auf den Doctype Switch?

            Mathias

            1. Hallo,

              [...] gar nicht so klar, was die nächsten Jahre bringen werden. Sicher werden die Browser nicht den Fallback grundlegend ändern, aber das type-Attribut wird wieder an Bedeutung gewinnen.

              Hast du das in deiner Glaskugel gesehen?

              [...] stattdessen spricht Microsoft von einer rein heuristischen Wahl und empfiehlt, die Scriptsprache immer anzugeben.

              Die emphehlen ja auch den IE und Windows.

              Klar, in der HTML 4.01 Strict-DTD ist das type-Attribut als "required" definiert, warum auch immer. Die Browser lesen aber meines Wissens ohnehin keine DTDs.

              Wieso sollten sie auch DTDs lesen.

              Um zu sehen, was wie ausgezeichnet wird und welche Attribute wo erlaubt bzw. nötig sind usw. usf. Wieso brauchen sie denn überhaupt einen Pfad zur DTD (im DOCTYPE-tag), wenn sie diese konsequent ignorieren?

              [...] Solange man nicht die konkrete Syntax eines Dokuments gegen die allgemeinen Regeln prüfen will, besteht da natürlich kein Zusammenhang.

              Das sollte ein Browser IMO aber tun, s.u.

              Das heißt aber nicht, dass die Browser nicht die Grammatik implementiert haben. Sie haben dies und sind darüber hinaus noch ziemlich fehlertolerant.

              Ja, leider sind sie vieeel zu fehlertolerant.

              wie kommst du vom type-Attribut auf den Doctype Switch?

              Ist doch klar: Weil der DOCTYPE die DTD angibt, nach deren Regeln das Dokument strukturiert sein soll, und darin steht nunmal, ob das type-Attribut optional oder notwendig oder überhaupt vorhanden ist. DOCTYPE ist Bestandteil von SGML (HTML ist ja eine SGML-Anwendung) und verweist eben auf die DTD, was die Browser aber nicht wirklich interessiert.

              Web-Browser sollten IMO lieber die angegebene DTD lesen und wie ein SGML-Parser vorgehen, wäre jedenfalls schön, oder? Statt dessen haben sie DOCTYPE zu einem bloßen Schalter degradiert, über den nur gesteuert wird, welche der eingebauten willkürlichen Darstellungsweisen zum Zug kommen soll.

              Gruß, Don P

              1. Hallo,

                [...] gar nicht so klar, was die nächsten Jahre bringen werden. Sicher werden die Browser nicht den Fallback grundlegend ändern, aber das type-Attribut wird wieder an Bedeutung gewinnen.

                Hast du das in deiner Glaskugel gesehen?

                Eher in meinem Feedreader. ;)

                Wieso sollten sie auch DTDs lesen.

                Um zu sehen, was wie ausgezeichnet wird und welche Attribute wo erlaubt bzw. nötig sind usw. usf. Wieso brauchen sie denn überhaupt einen Pfad zur DTD (im DOCTYPE-tag), wenn sie diese konsequent ignorieren?

                Sie brauchen den gar nicht. Das ist einfach eine normative und kontingente Setzung des IE-Entwicklerteams, die die Render-Modi an irgendetwas festmachen mussten und daher ziemlich willkürlich auf die - wie man will - grandiose oder grandios dumme Idee des Doctype-Switches kamen.

                [...] Solange man nicht die konkrete Syntax eines Dokuments gegen die allgemeinen Regeln prüfen will, besteht da natürlich kein Zusammenhang.

                Das sollte ein Browser IMO aber tun, s.u.

                Uff, jetzt bin ich platt.

                Das heißt aber nicht, dass die Browser nicht die Grammatik implementiert haben. Sie haben dies und sind darüber hinaus noch ziemlich fehlertolerant.

                Ja, leider sind sie vieeel zu fehlertolerant.

                Kann man so sehen, aber andererseits rufst du offenbar dazu auf, auf Fehlertoleranz zu bauen?! ;)

                Web-Browser sollten IMO lieber die angegebene DTD lesen und wie ein SGML-Parser vorgehen, wäre jedenfalls schön, oder?

                »Wie ein SGML-Parser vorgehen« hat erstmal gar nichts notwendig mit »DTD lesen« zu tun. Es gibt validierende und nicht-validierende SGML-Parser. (Für XML gilt dasselbe.) Der HTML-Parser im Browser ist kein validierender Parser. Warum sollte er auch? Validierung ist wichtig beim Schreiben und Generieren von Markup, aber beim bloßen Parsen zur Erstellung eines DOM ist Validierung unzweckmäßig. Auf der Welt werden auch täglich Milliarden XML-Dokumente geparst, ohne dass dabei gegen DTDs validiert wird (XML-/SGML-DTDs samt SGML-Deklarationen sind ohnehin nur eine Möglichkeit, eine Grammatiken maschinenlesbar zu formulieren).

                Mathias

                1. Hallo,

                  Sie brauchen den gar nicht. Das ist einfach eine normative und kontingente Setzung des IE-Entwicklerteams, die die Render-Modi an irgendetwas festmachen mussten und daher ziemlich willkürlich auf die - wie man will - grandiose oder grandios dumme Idee des Doctype-Switches kamen.

                  Die Idee finde ich nicht grundsätzlich dumm, aber die Umsetzung ist inkonsequent. Man verlangt eine DTD und ignoriert sie dann bzw. ersetzt sie durch etwas, was fest implementiert ist. Das ist das Dumme daran.

                  [...] Solange man nicht die konkrete Syntax eines Dokuments gegen die allgemeinen Regeln prüfen will, besteht da natürlich kein Zusammenhang.

                  Das sollte ein Browser IMO aber tun, s.u.

                  Uff, jetzt bin ich platt.

                  Ich auch, angesichts der vielen "HTML"-Dokumente, die gegen die Syntax der einschlägigen DTDs verstoßen und auf Fehlertoleranz setzen. Der OP liefert ja gute Beispiele dafür.

                  Ja, leider sind sie vieeel zu fehlertolerant.

                  Kann man so sehen, aber andererseits rufst du offenbar dazu auf, auf Fehlertoleranz zu bauen?! ;)

                  Ähem, kann man so sehen. Beim type-Attribut zum script-tag sehe ich den Fehler allerdings in der DTD. Man hätte das Ding als optional deklarieren sollen. Javascript ist *die* Standard-Scriptsprache für HTML und alle Browser sehen das so. Es ist, wie wenn man einem Kind sagt "Komm jetzt zu Tisch und iss deine Suppe, und zwar mit dem Esslöffel". Den Esslöffel extra zu erwähnen ist unnötig. Wenn man das Kind schikanieren und ausnahmsweise einen Teelöffel oder einen Suppenlöffel verwendet sehen will, dann kann man das ja angeben.

                  Web-Browser sollten IMO lieber die angegebene DTD lesen und wie ein SGML-Parser vorgehen, wäre jedenfalls schön, oder?

                  »Wie ein SGML-Parser vorgehen« hat erstmal gar nichts notwendig mit »DTD lesen« zu tun. Es gibt validierende und nicht-validierende SGML-Parser.

                  Das ist mir neu. Dachte, die validieren immer.

                  Validierung ist wichtig beim Schreiben und Generieren von Markup, aber beim bloßen Parsen zur Erstellung eines DOM ist Validierung unzweckmäßig.

                  Aha, zweckmäßig ist also, den Browser raten zu lassen, was wohl gemeint sein könnte bei offensichtlich falschem Markup, um dann dennoch irgend etwas anzuzeigen. Während der Browser rät und seine Fehlertoleranz-Routinen laufen, könnte ebensogut eine echte Validierung stattfinden mit genauen Fehlermeldungen. Das würde den vielen selbsternannten Web-Entwicklern und -Designern auf die Sprünge helfen und alle wären glücklicher.

                  Es ist für viele anscheinend schwer einzusehen (für mich manchmal auch), warum man unbedingt valides HTML schreiben sollte, wenn die Browser fehlerhaftes Markup ohne Murren trotzdem anzeigen. Leider tun sie das nicht immer und nicht alle gleich. Es ist IMHO aber viel einfacher, valides HTML zu benutzen, als falsches Markup nur gerade soweit einzusetzen, dass die Inhalte dennoch richtig angezeigt werden. Erschwert wird einem aber die Erstellung validen Markups, weil die Browser nicht validieren.

                  Gruß, Don P

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

    <span class="branch" id="branch1">
      <tr>
      <td width="22" bgcolor="$bg1" align="center">$icon</td>
      <td bgcolor="$bg2">$boardname <br><br><span class="small">$boardinfo<br>$moderators</span></td>
      <td bgcolor="$bg1" align="center">$anztopics</td>
      <td bgcolor="$bg2" align="center">$anzposts</td>
      <td bgcolor="$bg1" align="center"><a href="$postlink">$date $time</a><br>$poster $member</td>
    </tr><br>
    </span>

    Du hast hier ein tr-Element ohne table-Element. Und als Container nimmst du span. Das ist kein gültiges HTML.

    Was willst du erreichen? Eine Tabelle (table) mit einer Zeile (tr)? Dann setze anstelle von span ein table und lösche den <br>-Tag.

    <table class="branch" id="branch1">
    <tr>...</tr>
    </table>

    <div class="trigger" onClick="showBranch('branch1');swapFolder('folder1')">
    <img src="pluszeichen.gif" border="0" id="folder1">
       <tr bgcolor="$pagebg"><td colspan="6"></td></tr>
      <tr bgcolor="$bgcat">
        <td>so soll es sein</td>
      </tr>
       <tr bgcolor="$pagebg"><td colspan="6"></td></tr>
    </div>

    Diese Verschachtelung ist auch unmöglich. Ein div-Element kann keine tr-Elemente enthalten. Dasselbe Problem wie oben. Das solltest du erstmal in Ordnung bringen, bevor du mit JavaScript/CSS die Sichtbarkeit veränderst. Wie die Browser diesen Code darstellen, ist nämlich nicht absehbar.

    Mathias