<SCRIPT language="JavaScript"><!--
menulayer=new Array()
menulayer[0]="menu1"
menulayer[1]="menu2"
menulayer[2]="menu3"
menulayer[3]="menu4"v4=(parseInt(navigator.appVersion)>=4 && parseInt(navigator.appVersion)<=5)?1:0
ie=(document.all && v4)?1:0
ns=(document.layers && v4)?1:0
Es gibt nur zwei Browser?
function showmenu(thelayer){
keep=thelayer; hideall(); showitnow=1
showit(thelayer)
}function showit(thelayer){
if(ie){ eval(menulayer[thelayer]+'.style.visibility="visible"') }
if(ns){ eval('document.'+menulayer[thelayer]+'.visibility="show"');}
}
Ahh, wenn ich sowas sehe..
wo kommt denn dieser eval Mist her?
if(ie){ document.menulayer[thelayer].style.visibility="visible"}
else if(ns){ document.menulayer[thelayer].visibility="show";}
function hidemenu(){
keep=-1; setTimeout('hideall()',500)
}keep=-1
function hideall(){
for(i=0;i<menulayer.length;i++){
hideit=0; checkmousepos(i)
if(ie && keep!=i){
if(hideit){ eval(menulayer[i]+'.style.visibility="hidden"') }
}
if(ns && keep!=i){
if(hideit){ eval('document.'+menulayer[i]+'.visibility="hide"') }
}
}
}document.onmousemove = getmousepos
if (ns) document.captureEvents(Event.MOUSEMOVE)function getmousepos(e){
if(ns){mousex=e.pageX; mousey=e.pageY}
if(ie){mousex=event.clientX; mousey=event.clientY;}
}function checkmousepos(i){
if(ns){
x_min=eval('document.'+menulayer[i]+'.left')
x_max=x_min+eval('document.'+menulayer[i]+'.clip.width')
y_min=eval('document.'+menulayer[i]+'.top')
y_max=y_min+eval('document.'+menulayer[i]+'.clip.height')
}
if(ie){
x_min=eval(menulayer[i]+'.style.pixelLeft')
x_max=x_min+eval(menulayer[i]+'.scrollWidth')
y_min=eval(menulayer[i]+'.style.pixelTop')
y_max=y_min+eval(menulayer[i]+'.scrollHeight')
}
if (mousex>=x_min && mousex<=x_max && mousey>=y_min && mousey<=y_max){
hideit=0; setTimeout('hideall()',500)
}
else { hideit=1 }
return hideit
}//--></SCRIPT>
Habe mit Hilfe dieses Scripts eine Art Dropdownmenü gebastelt, aber wenn man den Mauszeiger innerhalb des Menulayers hin und her bewegt, ist der Browser mit der Zeit überfordert und kackt irgendwann ganz ab. Kann man das irgendwie optimieren?
Ja, schmeiss die eval raus und kuck mal nach ner dHTML Bibliothek.
Aber der aus dem code ist nicht ersichtlich warum der Browser überfordert ist (obwohl Netscape mit eval prinzipiell zu Abstürzen neigt, aber davon sprachst du jan icht)
Struppi.