Christian: DOM und Mozilla

Beitrag lesen

nein, denn so ohne deinen Quellcode zu kennen ist das doch etwas schwierig

Gerne.

Das Objek oMen ist ein Eintrag aus einem Objekt-Array oMenu[], in dem alle Menüs eingelesen werden (oMen = oMenu[x];).

Auf diese Weise kann die Funktion DrawMenu beliebig oft iterativ aufgerufen werden.

Weiters gibt es noch ein CSS  für die Formatierung der Elemente.

Hier die Routine:

function DrawMenu(oMen, BY, x, y) {
 if (!BY) {
  BY = document.getElementsByTagName('body')[0];
  BY.style.background = 'transparent';
 }
 var UL = document.createElement('ul');

UL.className = 'Navigation';
 UL.id = oMen.Id;

with(UL.style) {margin = 0; padding = 0;}
 if (oMen.popup) {
  UL.style.display = 'none';
  UL.style.marginLeft = oMen.indent;
 }
 else {
  if (oMen.men_base == 'top')
   UL.style.top=y;
  else
   UL.style.bottom=y;
  UL.style.position = men_posArt;
  UL.style.left = x;
 }

UL.style.width = oMen.men_width;
 UL.borderColor = BY.style.backgroundColor;
 BY.appendChild(UL);

if (oMen.popup) {
  BY.onclick = function() {
   if (UL.style.display == 'none') {
   UL.style.display = '';
   }
   else {
    UL.style.display = 'none';
    BY.style.border = '1px';
    BY.style.borderStyle = 'solid';
   }
  }
 }

var i;
 var TmpArray = oMen.sMenu.split('|');
 var MenArray = new Array(TmpArray.length);
 for (i = 0; i < TmpArray.length; i++)
  MenArray[i] = TmpArray[i].split(';');

for (i = 0; i < MenArray.length; i++) {
  var LI = document.createElement('li');
  LI.id = MenArray[i][0];
  LI.style.borderColor = 'transparent';
  LI.style.backgroundColor = 'transparent';
  LI.style.width = oMen.men_width;
  LI.style.height = oMen.men_height;
  LI.style.align = 'right';

var LI_Txt = document.createTextNode(MenArray[i][1]);
  var AH = document.createElement('A');
  AH.style.fontWeight = oMen.font_Weight;
  AH.style.fontSize = oMen.font_Size;
  AH.style.fontFamily = oMen.font_Face;
  AH.style.width = oMen.men_width;
  AH.style.backgroundImage = oMen.bk_url;
  AH.appendChild(LI_Txt);
  LI.appendChild(AH);

if (MenArray[i][2].substr(0,1) != '$') {
   AH.href =  MenArray[i][2];
  }
  else {
   AH.href = 'javascript:dummy();';
   DrawMenu(oMenu[MenArray[i][2].substr(1)], LI, 0, 0);
  }
  UL.appendChild(LI);
 }