javascript menu niet zichtbaar in FF

Status
Niet open voor verdere reacties.

mellink

Nieuwe gebruiker
Lid geworden
8 nov 2008
Berichten
1
Hallo,

Op een website gebruik ik onderstaand script voor het menu. Het werkt prima in IE, maar niet in firefox. Wat moet in veranderen om het ook in FF werkend te krijgen?
PHP:
<script language="JavaScript">if (document.all)    {n=0;ie=1;fShow="visible";fHide="hidden";}
if (document.layers) {n=1;ie=0;fShow="show";   fHide="hide";}

window.onerror=new Function("return true")
rightX = 0;
function Menu()
{
	this.bgColor     = "#BBBBBB";
      	if (ie) this.menuFont = "bold xx-small Verdana";
	if (n)  this.menuFont = "bold x-small Verdana";
//	this.fontColor   = "white";

	this.addItem    = addItem;
	this.addSubItem = addSubItem;
	this.showMenu   = showMenu;
	this.mainPaneBorder = 0;
	this.subMenuPaneBorder = 0;

	this.subMenuPaneWidth = 120;

	lastMenu = null;
	
	rightY = 0;
	leftY = 0;
	leftX = 0;

	HTMLstr = "";
	HTMLstr += "<!-- MENU PANE DECLARATION BEGINS -->\n";
	HTMLstr += "\n";
	if (ie) HTMLstr += "<div id='MainTable' style='position:relative'>\n";
//	if (n)  HTMLstr += "<layer name='MainTable'>\n";
	HTMLstr += "<table width='100%' bgcolor='"+this.bgColor+"' border='"+this.mainPaneBorder+"'>\n";
	HTMLstr += "<tr>";
	if (n) HTMLstr += "<td> ";
	HTMLstr += "<!-- MAIN MENU STARTS -->\n";
	HTMLstr += "<!-- MAIN_MENU -->\n";
	HTMLstr += "<!-- MAIN MENU ENDS -->\n";
	if (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";
	if (ie) HTMLstr+= "</div>\n";
//	if (n)  HTMLstr+= "</layer>\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";
	if (n)
	{
		MENUitem += "<ilayer name="+idItem+">";
		MENUitem += "<a href='.' class=clsMenuItemNS onmouseover=\"displaySubMenu('"+idItem+"')\" onclick=\"return false;\">";
		MENUitem += "| ";
		MENUitem += text;
		MENUitem += "</a>";
		MENUitem += "</ilayer>";
	}
	if (ie)
	{
		MENUitem += "<td>\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 += "</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)
	{
		if (n)
		{
			MENUitem += "\n";
			MENUitem += "<layer id='"+idParent+"submenu' visibility=hide bgcolor='"+this.bgColor+"'>\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 += "</layer>\n";
			MENUitem += "\n";
		}
		if (ie)
		{
			MENUitem += "\n";
			MENUitem += "<div id='"+idParent+"submenu' style='position:absolute; visibility: hidden; width: "+this.subMenuPaneWidth+"; font: "+this.menuFont+"; top: -300;'>\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 += "</div>\n";
			MENUitem += "\n";
		}
		MENUitem += "<!-- SUB_MENU -->\n";
		HTMLstr = HTMLstr.replace("<!-- SUB_MENU -->\n", MENUitem);
	}

	Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";
	if (n)  MENUitem = "<tr><td><a class=clsMenuItemNS title='"+hint+"' href='"+location+"'>"+text+"</a><br></td></tr>\n";
	if (ie) MENUitem = "<tr><td><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;
	if (n)
	{
		submenu = document.layers[idMainMenu+"submenu"];
		if (lastMenu != null && lastMenu != submenu) hideAll();
		submenu.left = document.layers[idMainMenu].pageX;
		submenu.top  = document.layers[idMainMenu].pageY + 25;
		submenu.visibility = fShow;

		leftX  = document.layers[idMainMenu+"submenu"].left;
		rightX = leftX + document.layers[idMainMenu+"submenu"].clip.width;
		leftY  = document.layers[idMainMenu+"submenu"].top+
			document.layers[idMainMenu+"submenu"].clip.height;
		rightY = leftY;
	} else if (ie) {
		menu = eval(idMainMenu);
		submenu = eval(idMainMenu+"submenu.style");
		submenu.left = calculateSumOffset(menu, 'offsetLeft');
//		submenu.top  = calculateSumOffset(menu, 'offsetTop') + 30;
		submenu.top  = menu.style.top+23;
		submenu.visibility = fShow;
		if (lastMenu != null && lastMenu != submenu) hideAll();

		leftX  = document.all[idMainMenu+"submenu"].style.posLeft;
		rightX = leftX + document.all[idMainMenu+"submenu"].offsetWidth;

		leftY  = document.all[idMainMenu+"submenu"].style.posTop+
			document.all[idMainMenu+"submenu"].offsetHeight;
		rightY = leftY;
	}
	lastMenu = submenu;
}

function hideAll()
{
	if (lastMenu != null) {lastMenu.visibility = fHide;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)
{
	if (ie)
	{
		var x = window.event.clientX;
		var y = window.event.clientY;

		if (x > rightX || x < leftX) hideAll();
		else if (y > rightY) hideAll();
	}
	if (n)
	{
		var x = e.pageX;
		var y = e.pageY;

		if (x > rightX || x < leftX) hideAll();
		else if (y > rightY) hideAll();
	}
}

if (document.all)
{
	document.body.onclick=hideAll;
	document.body.onscroll=hideAll;
	document.body.onmousemove=updateIt;
}
if (document.layers)
{
	document.onmousedown=hideAll;
	window.captureEvents(Event.MOUSEMOVE);
	window.onmousemove=updateIt;
}</script>
<script language="JavaScript">function showToolbar()
{
// AddItem(id, text, hint, location, alternativeLocation);
// AddSubItem(idParent, text, hint, location);

	menu = new Menu();
	menu.addItem("link1", "Home", "Thuispagina de Arke",  null, null);
	menu.addItem("link2", "De Postdo", "Nieuwsbulletin van de Arke ",  null, null);
	menu.addItem("link3", "Schoolgids", "Hier vindt u alle informatie uit de schoolgids",  null, null);
	menu.addItem("link4", "De groepen", "Hier vindt u alle informatie uit de groepen",  null, null);
	menu.addItem("link5", "Colofon", "Hier vindt u informatie over deze website",  null, null);
	
	menu.addSubItem("link1", "Home", "Naar de thuispagina van de Arke", "http://www.dearke.nl" );
	
	menu.addSubItem("link2", "Laatste editie", "Klik hier en ga naar de laatste editie van de Postdo.",  "http://www.dearke.nl/postdo/postdo.htm");
	menu.addSubItem("link2", "Archief", "Klik hier en ga naar het archief. Hier kunt u een oudere Postdo nog eens inzien.",  "http://www.dearke.nl/postdo/archief.htm");
	menu.addSubItem("link2", "Verjaardagslijst", "Kijk hier om te zien wie er binnenkort jarig is",  "http://www.dearke.nl/postdo/jarig/jarig.htm");
	menu.addSubItem("link2", "Deze maand in de agenda", "Klik hier voor de maandagenda", 
"http://www.dearke.nl/postdo/maandagenda.htm");
	menu.addSubItem("link2", "Jaarkalender", "Klik hier voor de jaarkalender van alle activiteiten op de Arke",  "http://www.dearke.nl/postdo/jaar.htm");
	menu.addSubItem("link2", "Kinderwoud TSO", "Klik hier voor informatie over Kinderwoud, de organisatie die de tussenschoolse opvang verzorgd (dit is een externe link)",  "http://www.kinderwoud.nl/index.php");

	menu.addSubItem("link3", "Voorwoord", "Klik hier voor het voorwoord uit de schoolgids",  
"http://www.dearke.nl/school/voorwoord.htm");
	menu.addSubItem("link3", "Hoofdstuk 1: We stellen ons voor", "Klik hier voor het eerste hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h1.htm");
	menu.addSubItem("link3", "Hoofdstuk 2: Waar staan we voor", "Klik hier voor het tweede hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h2.htm");
	menu.addSubItem("link3", "Hoofdstuk 3: De organisatie van ons onderwijs", "Klik hier voor het derde hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h3.htm");
	menu.addSubItem("link3", "Hoofdstuk 4: De zorg voor kinderen", "Klik hier voor het vierde hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h4.htm");
	menu.addSubItem("link3", "Hoofdstuk 5: De leraren", "Klik hier voor het vijfde hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h5.htm");
	menu.addSubItem("link3", "Hoofdstuk 6: De ouders", "Klik hier voor het zesde hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h6.htm");
	menu.addSubItem("link3", "Hoofdstuk 7: de ontwikkeling van het ondewijs", "Klik hier voor het zevende hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h7.htm");
	menu.addSubItem("link3", "Hoofdstuk 8: de resultaten van het ondewijs", "Klik hier voor het achtste hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h8.htm");
	menu.addSubItem("link3", "Hoofdstuk 9: regelingen", "Klik hier voor het negende hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h9.htm");
	menu.addSubItem("link3", "Hoofdstuk 10: adressen", "Klik hier voor het tiende hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h10.htm");
	menu.addSubItem("link3", "Hoofdstuk 11: het schoollied", "Klik hier voor het elfde hoofdstuk uit de schoolgids",  "http://www.dearke.nl/school/h11.htm");
      
	menu.addSubItem("link4", "Groep 1/2 a", "Nieuws uit groep 1/2a",  
"http://www.dearke.nl/leerling/groep1_2a.htm");
	menu.addSubItem("link4", "Groep 1/2 b", "Nieuws uit groep 1/2b",  
"http://www.dearke.nl/leerling/groep1_2b.htm");
	menu.addSubItem("link4", "Groep 1/2 c", "Nieuws uit groep 1/2c",  
"http://www.dearke.nl/leerling/groep1_2c.htm");
	menu.addSubItem("link4", "Groep 1/2 d", "Nieuws uit groep 1/2d",  
"http://www.dearke.nl/leerling/groep1_2d.htm");
	menu.addSubItem("link4", "Groep 3a", "Nieuws uit groep 3a",  
"http://www.dearke.nl/leerling/groep3a.htm");
	menu.addSubItem("link4", "Groep 3b", "Nieuws uit groep 3b",  
"http://www.dearke.nl/leerling/groep3b.htm");
	menu.addSubItem("link4", "Groep 4a", "Nieuws uit groep 4a",  
"http://www.dearke.nl/leerling/groep4a.htm");
	menu.addSubItem("link4", "Groep 4b", "Nieuws uit groep 4b",  
"http://www.dearke.nl/leerling/groep4b.htm");
	menu.addSubItem("link4", "Groep 5a", "Nieuws uit groep 5a",  
"http://www.dearke.nl/leerling/groep5a.htm");
	menu.addSubItem("link4", "Groep 5b", "Nieuws uit groep 5b",  
"http://www.dearke.nl/leerling/groep5b.htm");
	menu.addSubItem("link4", "Groep 6a", "Nieuws uit groep 6a",  
"http://www.dearke.nl/leerling/groep6a.htm");
	menu.addSubItem("link4", "Groep 6b", "Nieuws uit groep 6b",  
"http://www.dearke.nl/leerling/groep6b.htm");
	menu.addSubItem("link4", "Groep 7a", "Nieuws uit groep 7a",  
"http://www.dearke.nl/leerling/groep7a.htm");
	menu.addSubItem("link4", "Groep 7b", "Nieuws uit groep 7b",  
"http://www.dearke.nl/leerling/groep7b.htm");
	menu.addSubItem("link4", "Groep 8a", "Nieuws uit groep 8a",  
"http://www.dearke.nl/leerling/groep8a.htm");
	menu.addSubItem("link4", "Groep 8b", "Nieuws uit groep 8b",  
"http://www.dearke.nl/leerling/groep8b.htm");
	menu.addSubItem("link4", "Algemeen", "Nieuws uit alle groepen",  
"http://www.dearke.nl/leerling/algemeen.htm");

menu.addSubItem("link5", "Colofon", "Informatie en disclaimer van deze website",  
"http://www.dearke.nl/colofon.htm");
	
	
	menu.showMenu();
}
</script>
<script
language="JavaScript">
showToolbar();
</script>
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan