JS Menü
Toni
- javascript
0 Utz
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
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