chris: navi-tree hat noch einen fehler

Hallo liebes Forum,
ich habe ein Problem mit meienm Navigations-Baum! Das ganze ist soweit funktional, das Verzeichnisse aufgehen, zugehen und auch gelinkt wird! Wenn ich aber nun einen anderen Baum lade und anschließend wieder den alten Baum lade wird dort, ein beim letzten mal geöffnetes Verzeichnis zwar mit der Grafik für ein offenes Verzeichniss geladen doch ohne die Subverzeichnisspunkte!
Entweder denke ich müste es so sein das die Bäume ganz bei null geladen werden auch wenn man sie ein zweites mal öffnet oder eben mit den entsprechenden Subverzeichnispunkten!

Hier ein Code von einem der Bäume ( alle wären zuviel und die sehen auch sowieso gleich aus bis auf die array Einträge!):

var maxdir = 3; var maxdoc = 3; var submaxdoc = 11; var anc = 0;
var dirs = new Array(maxdir); var docs = new Array(maxdoc); var subdocs = new Array(submaxdoc);
for (i=0; i<maxdir; i++) { dirs[i] = new Array(3); dirs[i].open = 0; dirs[i].nr = i;}
for (j=0; j<maxdoc; j++) { docs[j] = new Array(3); docs[j].nr = j; docs[j].target = "content";}
for (k=0; k<submaxdoc; k++) { subdocs[k] = new Array(11); subdocs[k].target = "content";}

var headline = "Produkte";

dirs[0].name = "microGlas 6"; dirs[0].y = "0";    dirs[0].link = "mg6_de.htm";
dirs[1].name = "microCAD";    dirs[1].y = "80";   dirs[1].link = "mcad_de.htm";
dirs[2].name = "microOpt";    dirs[2].y = "180";  dirs[2].link = "mopt_de.htm";

docs[0].name = "microBDE";     docs[0].link = "mbde_de.htm";  docs[0].last = 0; docs[0].target = "content";
docs[1].name = "microGlas 5";  docs[1].link = "mg5_de.htm";   docs[1].last = 0; docs[1].target = "content";
docs[2].name = "Neuigkeiten";  docs[2].link = "neuig_de.htm"; docs[2].last = 1; docs[2].target = "content";

subdocs[0].name = "Verwaltung der Stammdaten";                subdocs[0].parent = 0;  subdocs[0].link = "stamm_de.htm";        subdocs[0].last = 0;
subdocs[1].name = "Abwicklung von Gesch&auml;ftsprozessen";   subdocs[1].parent = 0;  subdocs[1].link = "prozesse_de.htm";     subdocs[1].last = 0;
subdocs[2].name = "Auswertung";                               subdocs[2].parent = 0;  subdocs[2].link = "auswert_de.htm";      subdocs[2].last = 0;
subdocs[3].name = "technisches";                              subdocs[3].parent = 0;  subdocs[3].link = "technik_de.htm";      subdocs[3].last = 1;
subdocs[4].name = "Modell- Selektor";                         subdocs[4].parent = 1;  subdocs[4].link = "modell_sel_de.htm";   subdocs[4].last = 0;
subdocs[5].name = "Modell";                                   subdocs[5].parent = 1;  subdocs[5].link = "modell_de.htm";       subdocs[5].last = 0;
subdocs[6].name = "Sprosse";                                  subdocs[6].parent = 1;  subdocs[6].link = "sprosse_de.htm";      subdocs[6].last = 0;
subdocs[7].name = "GGA-Selektor";                             subdocs[7].parent = 1;  subdocs[7].link = "gga_sel_de.htm";      subdocs[7].last = 0;
subdocs[8].name = "GGA";                                      subdocs[8].parent = 1;  subdocs[8].link = "gga_de.htm";          subdocs[8].last = 0;
subdocs[9].name = "GGA-Detail";                               subdocs[9].parent = 1;  subdocs[9].link = "gga_det_de.htm";      subdocs[9].last = 1;
subdocs[10].name = "Schnittbild";                             subdocs[10].parent = 2; subdocs[10].link = "cutpic_de.htm";      subdocs[10].last = 1;

var typeimg = new Array(6);
typeimg[0] = new Image(); typeimg[0].src="image/closedfolder.png";
typeimg[1] = new Image(); typeimg[1].src="image/openfolder.png";
typeimg[2] = new Image(); typeimg[2].src="image/doc.gif";
typeimg[3] = new Image(); typeimg[3].src="image/node.png";
typeimg[4] = new Image(); typeimg[4].src="image/last.png";
typeimg[5] = new Image(); typeimg[5].src="image/extdoc.gif";

function initMenu() {
  var doc = tree.window.document;
  doc.open();
  doc.write("<html><head>");
  doc.write("<link rel=stylesheet type=text/css href=style.css>");
  doc.write("</head><body>");
  doc.write("<table border=0 cellpadding=0 cellspacing=0 width=95%>");
  doc.write("<tr><b>"+headline+"</b></tr><br></table>");
  for (i=0; i<maxdir; i++) {
    doc.write("<table border=0 cellpadding=0 cellspacing=0 width=95%><tr valign=middle align=left>");
    doc.write("<td width=15%>");
    doc.write("<a href=javascript:parent.openFolder("+dirs[i].nr+")>");
    doc.write("<img src="+typeimg[dirs[i].open].src+" border=0 align=absmiddle vspace=2 hspace=3></a></td>");
    doc.write("<td><a href="+dirs[i].link+" target=content>"+dirs[i].name+"</a></td>");
    doc.write("</tr></table>");
  }
  endMenu();
}
function openFolder(which) {
  var doc = tree.window.document;
  anc = which;
  doc.open();
  if(dirs[which].open==1){ dirs[which].open=0;}
  else {dirs[which].open=1;}
  doc.write("<html><head>\n");
  doc.write("<link rel=stylesheet type=text/css href=style.css>\n");
  doc.write("</head><body>");
  doc.write("<table border=0 cellpadding=0 cellspacing=0 width=95%>\n");
  doc.write("<tr><b>"+headline+"</b></tr><br></table>\n");
  for (i=0; i<maxdir; i++) {  // Verzeichnisschleife
    doc.write("<table border=0 cellpadding=0 cellspacing=0 width=95%><tr valign=middle align=left>\n");
    doc.write("<td width=15%><a href=javascript:parent.openFolder("+dirs[i].nr+")>\n");
    doc.write("<img src="+typeimg[dirs[i].open].src+"");
    doc.write(" border=0 align=absmiddle vspace=1 hspace=3></a></td><td>");
    doc.write("<a href="+dirs[i].link+" target=content>"+dirs[i].name+"</a></td></tr>\n");
    for (j=0; j<submaxdoc; j++) {  // Dokumentenschleife
      if ((subdocs[j].parent==i)&&(dirs[i].open)) {  // Zeigt Dokument
        doc.write("<table border=0 cellpadding=0 cellspacing=0 width=95%><tr><td width=8% align=middle>");
        doc.write("<img src=image/vert.png border=0 align=absmiddle></td>\n");
        doc.write("<td width=14% align=middle>");
        doc.write("<a href="+subdocs[j].link+" target="+subdocs[k].target+"><img src=");
        if (subdocs[j].last) {doc.write(typeimg[4].src);}
        else {doc.write(typeimg[3].src);}
        doc.write(" border=0 align=absmiddle vspace=1></a></td><td align=left><a href="+subdocs[j].link+" target="+subdocs[j].target+">"+subdocs[j].name+"</a></td>\n");
      } // Ende des gezeigten Dokumentes
    } // Ende der Dokumentenschleife
    doc.write("</tr></table></table>\n");
  } // Ende der Verzeichnisschleife
  if(which>0) {
   tree.window.scrollTo(0,dirs[anc].y);
  }
  endMenu();
}
function endMenu() {
  var doc = tree.window.document ;
  for (k=0; k<maxdoc; k++) {
    doc.write("<table border=0 cellpadding-bottom=2 cellspacing=0><tr valign=middle>\n<td width=24px align=center>");
    doc.write("<img src=");
    if (docs[k].last) {doc.write(typeimg[4].src);}
    else {doc.write(typeimg[3].src);}
    doc.write(" border=0 align=absmiddle></td>\n <td align=left><a href="+docs[k].link+" target="+docs[k].target+">"+docs[k].name+"</a>\n");
    doc.write("</td>\n</tr>\n");
  }
  doc.write("</table>\n</body></html>");
  doc.close();
}

Hat jemand eine Idee woran das liegen könnte und wie man es beheben könnte?

Danke für eure Hilfe im Vorraus!
mfg chris

  1. hi,

    ich habe ein Problem mit meienm Navigations-Baum! Das ganze ist soweit funktional, das Verzeichnisse aufgehen, zugehen und auch gelinkt wird! Wenn ich aber nun einen anderen Baum lade und anschließend wieder den alten Baum lade wird dort, ein beim letzten mal geöffnetes Verzeichnis zwar mit der Grafik für ein offenes Verzeichniss geladen doch ohne die Subverzeichnisspunkte!

    un dat soll ich jetz ohne online-beispiel verstehen ...?

    gruß,
    wahsaga

    --
    [ Hier könnte Ihre Werbung stehen! ]
  2. Hi,

    also das mit dem "einen Fehler" ist eine grobe Untertreibung.

    doc.open();
      doc.write("<html><head>");

    Du erzeugst keinen Doctype - damit entsteht ein ungültiges Dokument.

    doc.write("<link rel=stylesheet type=text/css href=style.css>");

    Hier wird z.B. ungültiger HTML-Code erzeugt, dem type-Attribut fehlen die zwingend erforderlichen Anführungszeichen.

    doc.write("

    An dieser Stelle ist das Script beendet, falls es sich in einem script-Element in einem HTML-Dokument befinden sollte - denn direkt darauf folgt die Zeichenfolge </
    Falls das Script in einer externen Javascript-Ressource steht, ist das kein Fehler - es würde aber auch nicht schaden, die Zeichenfolge durch Escapen des / zu trennen.

    doc.write("<table border=0 cellpadding=0 cellspacing=0 width=95%>");

    Auch hier fehlen erforderliche Anführungszeichen bei width.

    Von dem einen Fehler hab ich jetzt schon 3 bis 4 gefunden. Darum hör ich jetzt auf.

    Für molily: Da ein online-Beispiel fehlt, was das Problem ist, vorliegt, seh ich nicht ein, daß ich das genauer analysiere.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.