Toni: JS Menü

Hallo,

Ich suche verzwifelt nach einer Lösung das unten stehende Script auf einen Netscape 7 zum laufen zu bringen. Ich weis zwar das man bei Netscape mit dem getElementById-tag arbeitet, habe aber dennoch keine Lösung. Ich wäre für jeden Lösungsansatz sehr dankbar, da ich mir sicher bin, dass jeder JS Guru damit kein Problem hat.

Ich bitte nur um fachlich-relevante Aussagen, die sarkastischen und irrelevanten Aussagen mancher Mitglieder bitte ich zu unterlassen. Ich brauche lediglich echte Hilfe.

Hier der Original Quellcode für den IE:

function InitMenu()
   {
     var bar = menuBar.children

for(var i=0;i < bar.length;i++)
        {
          var menu=eval(bar[i].menu)
          menu.style.visibility = "hidden"
          bar[i].onmouseover = new Function("ShowMenu("+bar[i].id+")")
    var Items = menu.children
          for(var j=0; j<Items.length; j++)
            {
              var menuItem = eval(Items[j].id)

if(menuItem.menu != null)
                   {
                    menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'></Span>"
                    //var tmp = eval(menuItem.id+"_Arrow")
                    // tmp.style.pixelLeft = menu.getBoundingClientRect().Right //- tmp.offsetWidth - 15
                    FindSubMenu(menuItem.menu)}

if(menuItem.cmd != null)
                   {
                   menuItem.onclick = new Function("Do("+menuItem.id+")") }

menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
              menuItem.onmouseout  = new Function("outlight("+Items[j].id+")")

}

}
   }
   function FindSubMenu(subMenu)
   {
         var menu=eval(subMenu)
         var Items = menu.children
          for(var j=0; j<Items.length; j++)
            {
              menu.style.visibility = "hidden"
              var menuItem = eval(Items[j].id)

if(menuItem.menu!= null)
                 {
                    menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
                    // var tmp = eval(menuItem.id+"_Arrow")
                    //tmp.style.pixelLeft = 35 //menuItem.getBoundingClientRect().right - tmp.offsetWidth - 15
                    FindSubMenu(menuItem.menu)
                 }

if(menuItem.cmd != null)
                   {
                   menuItem.onclick = new Function("Do("+menuItem.id+")") }

menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
              menuItem.onmouseout  = new Function("outlight("+Items[j].id+")")

}
   }
   function ShowMenu(obj)
   {
     HideMenu(menuBar)
     var menu = eval(obj.menu)
     var bar = eval(obj.id)
     bar.className="barOver"
     menu.style.visibility = "visible"
     menu.style.pixelTop = obj.getBoundingClientRect().top + obj.offsetHeight + Bdy.scrollTop - 2
     menu1.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft - 3
     menu2.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft - 3
     menu3.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft - 3
     menu4.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft - 3
     menu5.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft - 3
   }

function highlight(obj)
   {
     var PElement = eval(obj.parentElement.id)
     if(PElement.hasChildNodes() == true)
     {  var Elements = PElement.children
       for(var i=0;i<Elements.length;i++)
       {
          TE = eval(Elements[i].id)
          TE.className = "menuItem"
       }
      }
     obj.className="ItemMouseOver"
     ShowSubMenu(obj)
   }

function outlight(obj)
   {
   obj.className="menuItem"
   }

function Do(obj)
   {
    var cmd = eval(obj).cmd
    window.open(cmd, TARGET="home")

}

function HideMenu(obj)
   {
          if(obj.hasChildNodes()==true)
              {
                 var child = obj.children

for(var j =0;j<child.length;j++)
                  {
                     if (child[j].className=="barOver")
                     {var bar = eval(child[j].id)
                      bar.className="Bar"}

if(child[j].menu != null)
                       {
                          var childMenu = eval(child[j].menu)
                          if(childMenu.hasChildNodes()==true)
                               HideMenu(childMenu)

childMenu.style.visibility = "hidden"
                        }
                  }
                            }

}
  function ShowSubMenu(obj)
  {
     PMenu = eval(obj.parentElement.id)
      HideMenu(PMenu)
     if(obj.menu != null)
     {
     var menu = eval(obj.menu)
     menu.style.visibility = "visible"
     menu.style.pixelTop =  obj.getBoundingClientRect().top + Bdy.scrollTop - 3
     menu.style.pixelLeft = obj.getBoundingClientRect().right + Bdy.scrollLeft + 1
     if(menu.getBoundingClientRect().right > window.screen.availWidth )
     menu.style.pixelLeft = obj.getBoundingClientRect().left - menu.offsetWidth
    }
  }

Nochmals vielen Dank für jede Hilfe.

Toni

  1. Hallo,

    Ich bitte nur um fachlich-relevante Aussagen, die sarkastischen und irrelevanten Aussagen mancher Mitglieder bitte ich zu unterlassen. Ich brauche lediglich echte Hilfe.

    Pech für Dich, dass man sich hier nicht aussuchen kann, wer was und wie antwortet.

    Zu Deinem Problem: Du hast zwar jede Menge Code gepostet, aber schon in Zeile 3 steht was, das nirgendwo definiert zu sein scheint. Diese (und andere) Zuweisungen oder Prototypisierungen oder was wären notwendig gewesen, um dem Code folgen und Dir helfen zu können.

    Grüße,

    Utz

    --
    Mitglied im Ring Deutscher Mäkler