Alo: Problem mit baum

Hallo zusammen ich habe mit der Initialisierung eines Baumes ein problem. Und zwar habe ich den code von http://www.jrp.at/download/js/ie-menue/ie-menue.htm

Nun habe ich das ein wenig umgeschriben und es klappt auch fasst alles nur die Leaf(tiefsten elemente lassen sich nicht anzeigen). Irgendwie geschieht eine endlosschleife und ich komme nicht drauf wo

Hier ist der Code ich weiß ist etwas viel um sowas im forum nachzufragen aber ich habe die wichtigste stelle markiert vieleicht ist ja jemand so nett und findet den fehler. Danke im Voraus :

<html>

<script LANGUAGE="JavaScript">

<--! ############### hier ist das hauptprobelm diese funktion macht irgendwas fallch ######################################## ---!>

function generateTreePayable()
{
 var aux1, aux2, aux3, aux4
  foldersTree = folderNode("Payables")
 aux1 = appendChild(foldersTree, folderNode("Date"))
 aux2 = appendChild(aux1, leafNode("2002"))
 appendChild(aux2, generateDocEntry(0, "07", "www.promedium.com", ""))

appendChild(aux2, generateDocEntry(0, "08", "www.promedium.com", ""))

appendChild(aux2, generateDocEntry(0, "09", "www.promedium.com", ""))

appendChild(aux2, generateDocEntry(0, "10", "www.promedium.com", ""))
 }

<!--- ##############################################---!>

//Jeder Knoten im Baum ist ein array
//  node[0] is 0/1 wenn Node offen oder geschlossen ist
//  node[1] is 0/1 wenn der Ordner offen oder geschlossen ist
//  node[2] is 1 wenn die kinder des knotens Blätter sind
//  node[3] is Name des Knotens
//  node[4]...node[4+n] die Kinder des Knotens

// Zum Vaterknoten erstellen
function folderNode(name)
{
var arrayAux
 arrayAux = new Array
 arrayAux[0] = 0
 arrayAux[1] = 0
 arrayAux[2] = 0
 arrayAux[3] = name

return arrayAux
}

// Blätter im Baum
function leafNode(name)
{
var arrayAux
 arrayAux = new Array
 arrayAux[0] = 0
 arrayAux[1] = 0
 arrayAux[2] = 1
 arrayAux[3] = name

return arrayAux
}

//fügt kinder im baum hinzu
function appendChild(parent, child)
{
 parent[parent.length] = child
 return child
}

//Die tiefsten elemente im baum
function generateDocEntry(icon, docDescription, link)
{
var retString =""

if (icon==0)
  retString = "<A href='"+link+"' target=topLeftFrame><img src='doc.gif' alt='Opens in right frame'"
 else
  retString = "<A href='http://"+link+"' target=_blank><img src='link.gif' alt='Opens in new window'"
 retString = retString + " border=0></a><td nowrap><font size=-1 face='Arial, Helvetica'>" + docDescription + "</font>"

return retString

}

// **********************
// display functions

function redrawTree()
{
var doc = top.topLeftFrame.window.document

doc.clear()
 doc.write("<body bgcolor='white'>")
 redrawNode(foldersTree, doc, 0, 1, "")
 doc.close()
}

function redrawNode(foldersNode, doc, level, lastNode, leftSide)
{
var j=0
var i=0

doc.write("<table border=0 cellspacing=0 cellpadding=0>")
 doc.write("<tr><td valign = middle nowrap>")

doc.write(leftSide)

if (level>0)
  if (lastNode) //Das letzte element im children array
  {
   doc.write("<img src='lastnode.gif' width=16 height=22>")
   leftSide = leftSide + "<img src='blank.gif' width=16 height=22>"
  }
  else
  {
   doc.write("<img src='node.gif' width=16 height=22>")
   leftSide = leftSide + "<img src='vertline.gif' width=16 height=22>"
  }

displayIconAndLabel(foldersNode, doc)
 doc.write("</table>")

if (foldersNode.length > 4 && foldersNode[0]) //es gibt unterordner und der knoten ist offen
 {
  if (!foldersNode[2]) //Für Ordner mit unterordnern
  {
   level=level+1
   for (i=4; i<foldersNode.length;i++)
    if (i==foldersNode.length-1)
     redrawNode(foldersNode[i], doc, level, 1, leftSide)
    else
     redrawNode(foldersNode[i], doc, level, 0, leftSide)
  }
  else //for folders with documents
  {
   for (i=4; foldersNode.length;i++)
   {
    doc.write("table border=0 cellspacing=0 cellpadding=0 valign=center>")
    doc.write("<tr><td nowrap>")
    doc.write(leftSide)
    if (i==foldersNode.length - 1)
     doc.write("<img src='lastnode.gif' width=16 height=22>")
    else
     doc.write("<img src='node.gif' width=16 height=22>")
    doc.write(foldersNode[i])
    doc.write("</table>")
   }
  }
 }
}

//Erstellt den HTML Code der angezeigt wird
function displayIconAndLabel(foldersNode, doc)
{
 doc.write("<A href='javascript:top.openBranch("" + foldersNode[3] + "")'><img src=")
 if (foldersNode[1])
  doc.write("openfolder.gif width=24 height=22 border=noborder></a>")
 else
  doc.write("closedfolder.gif width=24 height=22 border=noborder></a>")
 doc.write("<td valign=middle align=left nowrap>")
 doc.write("<font size=-1 face='Arial, Helvetica'>"+foldersNode[3]+"</font>")
}

//**********************+
// Recursive functions

//Wenn ein Vaterknoten geschlossen wird dann alle unterknoten mitschliessen
function closeFolders(foldersNode)
{
var i=0

if (!foldersNode[2])
 {
         for (i=4; i< foldersNode.length; i++)
             closeFolders(foldersNode[i])

}
        foldersNode[0] = 0
        foldersNode[1] = 0
}

function clickOnFolderRec(foldersNode, folderName)
{
var i=0

if (foldersNode[3] == folderName)
 {
  if (foldersNode[0])
   closeFolders(foldersNode)
  else
  {
   foldersNode[0] = 1
                 foldersNode[1] = 1
  }
 }
 else
 {
         if (!foldersNode[2])
          for (i=4; i< foldersNode.length; i++)
              clickOnFolderRec(foldersNode[i], folderName)
 }
}

// ********************
// Event handler
//Wenn ein Benutzer auf einen Ordner clickt
function openBranch(branchName)
{
 clickOnFolderRec(foldersTree, branchName)
 if (branchName=="Payables" && foldersTree[0]==0)
  top.topRigthFrame.location="basefolder.htm"
 timeOutId = setTimeout("redrawTree()",100)
}

//Nach dem die HTML datei geladen wurde wird hiermit der Baum initialisiert
function initializeTree()
{
 generateTreePayable()
 redrawTree()
}

var foldersTree = 0
var timeOutId = 0
generateTreePayable()
</script>

<head>
<title>No Match List</title>
</head>

<frameset onLoad="initializeTree()" rows="10,45,45" cols="*" border="1" framespacing="0">
   <frame src="basefolder.htm" name="top">
  <frameset cols="20,80" border="1" framespacing="0">
    <frame src="basetree.htm" name="topLeftFrame" noresize>
    <frame src="basefolder.htm" name="topRightFrame">
  </frameset>
  <frameset cols="20,80" border="1" framespacing="0">
    <frame src="basefolder.htm" name="bottomLeftFrame" noresize>
    <frame src="basefolder.htm" name="bottomRightFrame">
  </frameset>
</frameset>

<noframes><body>
<p>Sorry your Browser is not compatible with Frames !</p>
</body></noframes>

</html>

  1. Hi!

    Ich denke der Fehler ist ganz easy:
    Du hast gar keine Semikolen am Ende der relevanten Zeilen!
    Und da du das in jeder Zeile hast gibt er dir einen Fehler in der ersten Funtkion vor, das ist nämlich der Ort wo der Fehler als erstes auftritt!

    cu

    Marc Reichelt || http://www.marcreichelt.de/

    --
    tel.: 0049/6181/72224
    Linux is like a wigmam - no windows, no gates and an Apache inside!!!
    1. Danke für die schnelle Antwort aber leider ist das nicht das problem. Semikolon ist nicht notwendig in javascript. Es funktioniert ohne fehler nur wenn ich die letzten elemente im baum öffnen will gerät er in eine endlosschleife denke ich denn dann geht nix mehr

      MFG

      1. auch wenn es nicht Fehler sein mag:

        "Eine Anweisung in JavaScript besteht immer aus einem Befehl, der mit einem Strichpunkt ; oder einem Zeilenumbruch abgeschlossen wird. In neueren Netscape-Dokumentationen zu JavaScript wird der Strichpunkt am Ende von einfachen Anweisungen zwar häufig weggelassen, aber um unnötige Fehler zu vermeiden, ist es ratsam, sich von vorneherein anzugewöhnen, alle Anweisungen auf diese Weise abzuschließen."
        http://selfhtml.teamone.de/javascript/sprache/regeln.htm