lotte: XHTML Dynamisch generierte Javascripte

Beitrag lesen

Ich hab Probleme mit dynamisch generierten Javascripten und XHTML. Obwohl das dynamisch erzeugte Menu nicht im Quelltext erscheint und als js ausgelagert ist zeigt der Mozilla mir das Menu nicht richtig an. Imdynamischen Teil hab ich dann schon nicht ganz xhtml conform stylangaben in Tags, was aber nicht anders geht denk ich , da die auch wieder dynamisch sind??
Gibt es dazu irgentwelche tollen nachschlagewerke wo was dazusteht??

Hier mal der Quelltext, wer Lust hat:

Grüße
Lotte

Inhalte stehen in einem Array auf der Html Seite:

js.Datei:

var height = 20; // height of the menu headers
  var iheight = 0; // height of the menu_items

var bgc = "lightyellow" // background color of the item
  var tc = "black" // text color of the item

var over_bgc = "silver";
  var over_tc = "red";

var speed =1;
  var timerID = "";
  var N = (document.all) ? 0 : 1; //if (document.all){N=0}else{N=1}
  var width = 902

var self_menu = new Array();
function write_menu()
{
  smc = 0; // count the position of the self_menu
  document.write("<div id='gesdiv'>");//alles umschließendes Div
  mn = 0;//Topposition
  mni = 1;//
  start = -1;

for(i=0;i<Link.length;i++)//Array mit Einträgen
  {
   la = Link[i].split("|");

if (la[0] == "0")//Obermenupunkt
   {
    if(start == 0){//kein weiterer Punkt mehr, dann div schließen
      document.write("</div>");
      h = iheight; //Höhe Menu insgesamt
      tmn = mn; //-h
      self_menu[smc] = new Array(tmn,h,0,-2);//jeder Eintrag wieder in Array
      smc++;
      mn--;
    }
    iheight = 0;
  //  csmc = 0;
    document.write("<div class='menu' style='top:"+mn+"px ;height:"+height+"px' id='down"+smc+"' onclick='pull_down("+smc+","+mni+")'> "+ la[1] + "</div>");
    self_menu[smc] = new Array(mn,height,0,mni);//neues Array mit 4 Einträgen?
    smc++;
    mni++;
    mn+=height;
    start = 1;
   }
   else//Untermenupunkt
   {
    if(start == 1)
     {
      //if(N)mn+=2;
    idname = "down"+smc;
    topwert = mn+'px';
    //alert (topwert);
    //document.getElementById(idname).style.top = topwert;

document.write("<div class='item_panel' id='down"+smc+"' style='top:"+mn+"px'>");
       start = 0;
     }

/* document.write("<a href='"+la[2]+"'");
          if (la[3] != "") document.write("target='" + la[3] + "'");*/

document.write("<div id='d"+i+"'>");

// if (N) document.write(";width:150");

ta = la[1].split("&");
    document.write("<table id='tab"+i+"' border='0' class='item'><tr><td class='spalte1'>");
    document.write( ta[0] + "</td><td class='spalte2'>"+ ta[1]+"</td><td class='spalte3'>"+ta[2]+"</td><td class='spalte4'>"+ ta[3]+"</td></tr></table></div>");
    var tabname = "tab"+i;
    iheight +=document.getElementById(tabname).offsetHeight;
   // csmc++;
   }//Ende else

}//Ende For

if (start == 0){//Untermenupunkt schliessen(endet mit Untermenupunkt)
     document.write("</div>");
     h = iheight;
     tmn = mn + 5; //-h
     self_menu[smc] = new Array(tmn,h,0);
     name = "down" + (self_menu.length-1);
     obj = document.getElementById(name);
     obj.style.borderBottomColor = "black";
     obj.style.borderBottomWidth = 1;
     obj.style.borderBottomStyle = "solid";
   }

document.write("</div>");
}

function color(obj)
{
 document.getElementById(obj).style.backgroundColor = over_bgc;
 document.getElementById(obj).style.color = over_tc
}

function uncolor(obj)
{
 document.getElementById(obj).style.backgroundColor = bgc;
 document.getElementById(obj).style.color = tc
}

function pull_down(nr,c)
{
var val=0;

if (timerID == "")
 {
 to = self_menu[nr+1][1]
 begin = nr + 2;
 if (timerID != "") clearTimeout(timerID);
 if (self_menu[nr+1][2] == 0)
 {
  self_menu[nr+1][2] = 1;
  if(nr == self_menu.length-2) {to++;}
  epull_down(begin,to,0);

}
 else
 {
  to = 0;
  self_menu[nr+1][2] = 0;
  name = "down"+(nr+2);
  open_item = 0;
  for(i=0;i<nr;i++)
  {
   if(self_menu[i][2] == 1)
    {open_item += self_menu[i][1];
    }
  }
  //if (N == false) {open_item-= (c*1)};
  if (nr== self_menu.length-2) {val = self_menu[self_menu.length-1][1];to=-1;}
  else  val = parseInt(document.getElementById(name).style.top) -(open_item)-(c*height);
  epull_up(begin,to,val);
 }
 }
 //name = "down"+(nr+1);
 //document.getElementById(name).style.clip = "rect(0,"+width+",100,0)";
}

function epull_down(nr,to,nowv)
{
 name = "down" + (nr-1);
 obj = document.getElementById(name).style.clip = "rect(0,"+width+","+(nowv+1)+",0)";
  //obj = document.getElementById(name).style.clip = "rect(0,"+width+","+iheight+",0)";
 for (i=nr;i<self_menu.length;i++)
 {
  name = "down" + i;
  obj = document.getElementById(name);
  parseInt(obj.style.top)+1;
 }
 nowv+=1;

if(nowv < to){
   timerID = setTimeout("epull_down("+nr+","+to+","+nowv+")",speed);
 }
 else{
   timerID = "";
 }

}