Menüfehler bei der darstellung mit Netscape und Mozilla
D3R
- javascript
0 wahsaga0 D3R
Hallo,
ich hab nen Fehler in meinem JavaScript Menü. vielleicht könnt ihr mir helfen.
Es geht auf Opera + IE einwandfrei jedoch auf Netscape und Mozilla gar nicht.
die Seite wäre www.dark-empire.net
quelltext unter: www.dark-empire.net/quelltext.zip
Mit Freundlichen Grüßen
Scout
hier das Wichtigste:
Einbindung in der PHP-Datei:
________________________________________________
<SCRIPT language="JavaScript" src="../../menu.js"> </SCRIPT>
<SCRIPT language="JavaScript" src="../../menucontext.js"></SCRIPT>
<SCRIPT language="JavaScript"> showToolbar(); </SCRIPT>
menucontext.js:
________________________________________________
function showToolbar()
{
menu = new Menu();
menu.addItem("123", "123", "", null, null);
usw...
menu.addSubItem("123", "123", "", "link.php");
usw...
menu.showMenu();
}
menu.js:
_________________________________________________
window.onerror=new Function("return true")
rightX = 0;
function Menu()
{
this.bgColor = "#444444";
this.menuFont = "bold xx-small Verdana";
this.fontColor = "white";
this.addItem = addItem;
this.addSubItem = addSubItem;
this.showMenu = showMenu;
this.mainPaneBorder = 3;
this.subMenuPaneBorder = 0;
this.subMenuPaneWidth = 105;
lastMenu = null;
rightY = 0;
leftY = 0;
leftX = 0;
HTMLstr = "<center>";
HTMLstr += "<!-- MENU PANE DECLARATION BEGINS -->\n";
HTMLstr += "\n";
HTMLstr += "<div name='MainTable' id='MainTable'>\n";
HTMLstr += "<table bgcolor='"+this.bgColor+"' border='"+this.mainPaneBorder+"'>\n";
HTMLstr += "<tr>";
HTMLstr += "";
HTMLstr += "<!-- MAIN MENU STARTS -->\n";
HTMLstr += "<!-- MAIN_MENU -->\n";
HTMLstr += "<!-- MAIN MENU ENDS -->\n";
HTMLstr += "</td>";
HTMLstr += "</tr>\n";
HTMLstr += "</table>\n";
HTMLstr += "\n";
HTMLstr += "<!-- SUB MENU STARTS -->\n";
HTMLstr += "<!-- SUB_MENU -->\n";
HTMLstr += "<!-- SUB MENU ENDS -->\n";
HTMLstr += "\n";
HTMLstr+= "</div>\n";
HTMLstr += "<!-- MENU PANE DECALARATION ENDS -->\n";
}
function addItem(idItem, text, hint, location, altLocation)
{
var Lookup = "<!-- ITEM "+idItem+" -->";
if (HTMLstr.indexOf(Lookup) != -1)
{
alert(idParent + " already exist");
return;
}
var MENUitem = "";
MENUitem += "\n<!-- ITEM "+idItem+" -->\n";
{
MENUitem += "<td align='center' width='120'>\n";
MENUitem += "<div id='"+idItem+"' style='position:relative; font: "+this.menuFont+";'>\n";
MENUitem += "<a ";
MENUitem += "class=clsMenuItemIE ";
// MENUitem += "style='text-decoration: none; font: "+this.menuFont+"; color: "+this.fontColor+"; cursor: hand;' ";
if (hint != null)
MENUitem += "title='"+hint+"' ";
if (location != null)
{
MENUitem += "href='"+location+"' ";
MENUitem += "onmouseover="hideAll()" ";
}
else
{
if (altLocation != null)
MENUitem += "href='"+altLocation+"' ";
else
MENUitem += "href='.' ";
MENUitem += "onmouseover="displaySubMenu('"+idItem+"')" ";
MENUitem += "onclick="return false;" "
}
MENUitem += ">";
MENUitem += "| \n";
MENUitem += text;
MENUitem += " |\n";
MENUitem += "</a>\n";
MENUitem += "</div>\n";
MENUitem += "</td>\n";
}
MENUitem += "<!-- END OF ITEM "+idItem+" -->\n\n";
MENUitem += "<!-- MAIN_MENU -->\n";
HTMLstr = HTMLstr.replace("<!-- MAIN_MENU -->\n", MENUitem);
}
function addSubItem(idParent, text, hint, location)
{
var MENUitem = "";
Lookup = "<!-- ITEM "+idParent+" -->";
if (HTMLstr.indexOf(Lookup) == -1)
{
alert(idParent + " not found");
return;
}
Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->";
if (HTMLstr.indexOf(Lookup) == -1)
{
{
MENUitem += "\n";
MENUitem += "<div id='"+idParent+"submenu' style='position:absolute; visibility: hidden; width: "+this.subMenuPaneWidth+"; font: "+this.menuFont+"; top: -300;'>\n";
MENUitem += "<table border='1' bgcolor='"+this.bgColor+"' width="+this.subMenuPaneWidth+"><tr><td>\n";
MENUitem += "<table border='"+this.subMenuPaneBorder+"' bgcolor='"+this.bgColor+"' width="+this.subMenuPaneWidth+">\n";
MENUitem += "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";
MENUitem += "</table>\n";
MENUitem += "</td></tr></table>\n";
MENUitem += "</div>\n";
MENUitem += "\n";
}
MENUitem += "<!-- SUB_MENU -->\n";
HTMLstr = HTMLstr.replace("<!-- SUB_MENU -->\n", MENUitem);
}
Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";
MENUitem = "<tr><td align='center'><a class=clsMenuItemIE title='"+hint+"' href='"+location+"'>"+text+"</a><br></td></tr>\n";
MENUitem += Lookup;
HTMLstr = HTMLstr.replace(Lookup, MENUitem);
}
function showMenu()
{
document.writeln(HTMLstr);
}
function displaySubMenu(idMainMenu)
{
var menu;
var submenu;
{
menu = eval(idMainMenu);
submenu = eval(idMainMenu+"submenu.style");
submenu.left = calculateSumOffset(menu, 'offsetLeft');
submenu.top = calculateSumOffset(menu, 'offsetTop') + 30;
submenu.top = menu.style.top+60;
submenu.visibility = "visible";
if (lastMenu != null && lastMenu != submenu) hideAll();
}
lastMenu = submenu;
}
function hideAll()
{
{lastMenu.visibility = "hidden";lastMenu.left = 0;}
}
function calculateSumOffset(idItem, offsetName)
{
var totalOffset = 0;
var item = eval('idItem');
do
{
totalOffset += eval('item.'+offsetName);
item = eval('item.offsetParent');
} while (item != null);
return totalOffset;
}
function updateIt(e)
{
{
var x = window.event.clientX;
var y = window.event.clientY;
if (x > rightX || x < leftX) hideAll();
else if (y > rightY) hideAll();
}
}
{
document.body.onclick=hideAll;
}
hi,
ich hab nen Fehler in meinem JavaScript Menü.
_welchen_?
vielleicht könnt ihr mir helfen.
das hängt maßgeblich von dir ab.
liefere eine sinnvolle problembeschreibung.
einfach nur ellenlangen code posten in der hoffnung, dass wir den dann akribisch durchsuchen, funktioniert hier nicht.
gruss,
wahsaga
Weiter unten hab ichs schon mal auf ne andere Art und weise gepostet ohne Quelltext nur die problembeschriebung genauer, da gings dann auch nicht...
Hallo D3R,
Weiter unten hab ichs schon mal auf ne andere Art und weise gepostet ohne Quelltext nur die problembeschriebung genauer, da gings dann auch nicht...
Sinnvoller wäre gewesen, Du wärst in diesem Thread [pref:t=61882&m=349303] geblieben und hättest diese Nachfrage dort gestellt.
Was funktioniert nicht? Kommt eine Fehlermeldung? Wenn ja, wann und welche? Was hast Du versucht, um den Fehler einzukreisen?
Grüße
Andreas
Mit IE und Opera öffnen sich wenn man auf die buttons fährt ein Submenü, in dem sich einfach ein paar links befinden.
mit mozilla öffnet sich einfach kein submenü. es kommt kein fehler und kein gar nix.
document.all ist nun draussen ist aber noch nix besser.
Es geht inzwischen, wer interesse hat soll mich anmailen. - Es is die Hälfte neu geschrieben.
MfG
D3R