Dynamisch Navigieren mit Javascript

Arn

Grünschnabel
Hallo zusammen,

ich hoffe einer von Euch kann mir bei meinem Problem helfen.
Ich habe folgendes javaskript in eine Navigationsleiste eingebaut. Es handelt sich dabei um ein Pull down Skript, um ein Untermenu zu öffnen, über das dann verschiedene Seiten ausgewählt werden können. Am Internet Explorer funktioniert alles (Version egal), nur bei Netscape (Version 4.xx) sieht man die Leiste nicht.
Gibt es denn ein anderes Javascript , das sowohl von älteren Netscapes als auch IE richtig angesprochen wird?
(Falls die Erklärung etwas schwierig ist, hier die Adresse: http://www.pragerteut.esmartweb.com

Danke für Eure Hilfe,
Arn

P.S: Noch etwas: ich habe das Javascript nicht selbst geschrieben, habe es nur übernommen und etwas abgewandelt...

SCRIPT LANGUAGE="JavaScript"><!--
var page="http://www.esmartstart.com/cgi-bin/popup.pl?cname=pragerteut&dname=esmartweb";windowprops="height=80,width=625,location=no," + "scrollbars=no,menubars=no,toolbars=no,resizable=no"; window.open(page, "Popup", windowprops);
//-->
</script>



<body LINK="#FFFFFF" VLINK="#FFFFFF" ALINK="#FFFFFF" bgcolor="#FFFFFF" text="#FFFFFF" topMargin=11 marginheight=0
marginwidth=0 background="../grafik/hintergrunduntengif.gif" leftmargin="30">
<style>
<!--

.menuskin{
position:absolute;
width:120px;
background-color:menu;
border:1px solid black;
font:normal 9px Verdana;
line-height:16px;
z-index:100;
visibility:hidden;
}

.menuskin a{
text-decoration:none;
color:black;
padding-left:10px;
padding-right:10px;
}

#mouseoverstyle{
background-color:highlight;
}

#mouseoverstyle a{
color:white;
}
-->
</style>
<script language="JavaScript1.2">
var linkset=new Array()
//SPECIFY MENU SETS AND THEIR LINKS. FOLLOW SYNTAX LAID OUT
linkset[0]='<div class="menuitems"><a href="bund.html" target="mainFrame">Unser Bund</a></div>'
linkset[0]+='<div class="menuitems"><a href="burschenschaft.html" target="mainFrame">Wir als Burschenschaft</a></div>'
linkset[0]+='<div class="menuitems"><a href="kartell.html" target="mainFrame">Unser Kartell</a></div>'
linkset[1]='<div class="menuitems"><a href="bieten.html" target="mainFrame">Bundleben</a></div>'
linkset[1]+='<div class="menuitems"><a href="zimmer.html" target="mainFrame">Zimmer</a></div>'
linkset[2]='<div class="menuitems"><a href="erwartung.html" target="mainFrame">Vorraussetzungen</a></div>'
linkset[2]+='<div class="menuitems"><a href="fechten.html" target="mainFrame">Fechten</a></div>'
linkset[3]='<div class="menuitems"><a href="aktuelles.html" target="mainFrame">Aktuelles</a></div>'
linkset[3]+='<div class="menuitems"><a href="semesterprogramm.html" target="mainFrame">Semesterprogramm</a></div>'
linkset[4]='<div class="menuitems"><a href="eindruecke.html" target="mainFrame">Eindrücke</a></div>'
linkset[4]+='<div class="menuitems"><a href="http://www.pragerteut.esmartweb.com/www2/hausfotos2.html" target="mainFrame">Unser Haus</a></div>'
linkset[6]='<div class="menuitems"><a href="anfahrt.html" target="mainFrame">Anfahrt</a></div>'
linkset[6]+='<div class="menuitems"><a href="adresse.html" target="mainFrame">Unsere Adresse</a></div>'
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers

function showmenu(e,which){

if (!document.all&&!document.getElementById&&!document.layers)
return

clearhidemenu()

menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj

if (ie4||ns6)
menuobj.innerHTML=which
else{
menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
menuobj.document.close()
}

menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y

//Find out how close the mouse is to the corner of the window
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX

//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
menuobj.thestyle.visibility="visible"
return false
}

function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function hidemenu(){
if (window.menuobj)
menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
}

function dynamichide(e){
if (ie4&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}

function delayhidemenu(){
if (ie4||ns6||ns4)
delayhide=setTimeout("hidemenu()",500)
}

function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}

function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
else{
while(source_el.id!="popmenu"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
}
}
}

if (ie4||ns6)
document.onclick=hidemenu

</script>
 
Gibt es im NN4 irgendwelche Fehlermeldungen?

Meiner Meinung kann man bei der Entwicklung ruhig den NN4 außen vorlassen. Statt dessen würde ich für die Gecko-Engine (d.h. Mozilla, Netscape 6+, Firbird/Firefox, usw) entwickeln. Kleine Randbemerkung*g*
 
Fehlermeldung, nein..gibt es nicht...der Frame bleibt einfach weiß....
NN4 nicht berücksichtigen, das dachte ich auch immer...aber bei uns an der Uni
wird damit noch gesurft...
 

Neue Beiträge

Zurück