JavaScript Layer (visible, hide)
Wie kann ich im JavaScript vereinbaren wann und wie ein Layer gezeigt wird?
Im IE funktioniert meine Anweisung, aber im Firefox und Netscape nicht.
Antwort schreiben
Antwort 1 von DeluxeStyle vom 27.03.2019, 13:04 Options
poste mal deine url oder deinen quellcode
der ie backt immer sein eigenes süppchen
Antwort 2 von rfb vom 27.03.2019, 13:19 Options
Höchstwahrscheinlich ist dein JavaScript dann einfach fehlerhaft und nur der müde IE merkts mal wieder nicht.
Aber: ohne Quellcode keine Hilfe!
Außerdem wären die Fehlermeldungen des FF (Menü Extras/Fehlerkonsole) eine wesentlich sinnvollere Fehlerbeschreibung als "funktioniert ... nicht"!
Antwort 3 von Nicki232 vom 27.03.2019, 13:27 Options
www.raee.de ...es geht um die drei links auf der Seite Profil
Im Kopf ist das Script wie folgt vereinbart:
______________________________
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_nbGroup(event, grpName) { //v6.0
var i,img,nbArr,args=MM_nbGroup.arguments;
if (event == "init" && args.length > 2) {
if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
nbArr[nbArr.length] = img;
for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args)) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = img.MM_dn = args[i+1];
nbArr[nbArr.length] = img;
} }
} else if (event == "over") {
document.MM_nbOver = nbArr = new Array();
for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args)) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
nbArr[nbArr.length] = img;
}
} else if (event == "out" ) {
for (i=0; i < document.MM_nbOver.length; i++) {
img = document.MM_nbOver; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
} else if (event == "down") {
nbArr = document[grpName];
if (nbArr)
for (i=0; i < nbArr.length; i++) { img=nbArr; img.src = img.MM_up; img.MM_dn = 0; }
document[grpName] = nbArr = new Array();
for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args)) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
nbArr[nbArr.length] = img;
} }
}
//-->
</script>
</head>
____________________
Antwort 4 von Nicki232 vom 27.03.2019, 13:28 Options
Die Seite holt sich per php aus MySQL folgenden Quelltext:
_____________________-
<span class="schrift_grau">
<script language="JavaScript" type="text/javascript">
</script>
</span>
<script language="JavaScript" type="text/javascript"><!--
No3 = (parseInt(navigator.appVersion) > 3) ? 1:0;
layer = (document.all && No3) ? "document.all['L'+menu].style" : (document.layers && No3) ? "document.layers['L'+menu]" : 0;
var timer;
function Show() { if(layer) {
if(timer) clearTimeout(timer);
for(menu=0; menu<Layer.length; menu++) { if(Layer[menu]) { eval(layer).visibility = "hidden"; } }
for(i=0; i<arguments.length; i++) { menu=arguments; eval(layer).visibility = "visible"; }
} }
function Hide() { timer = setTimeout("Show()", 200); }
//-->
</script>
<span style="position:realitive;" visibility:visible;="visibility:visible;">
<ul>
<li><a class="ueberschrift_rot" onMouseOver="Show(1)" onMouseOut="Hide(1)">Verkehrsrecht</a></li>
<li><a class="ueberschrift_rot" onMouseOver="Show(2)" onMouseOut="Hide(2)">Bau- und Architektenrecht (öffentliches und privates)</a></li>
<li><a class="ueberschrift_rot" onMouseOver="Show(3)" onMouseOut="Hide(3)">Transport- und Speditionsrecht</a></li>
</ul>
<script language="JavaScript">
<!--
hovercolor = "#cccccc"; // color name/code
bgcolor = "#ffffff"; // color name/code
background = ""; // picture url
menu_border = 1; // IE only
border_color = "#333333"; // IE only
arrow_pic = ""; // url of arrow picture for submenus
if(document.all) { if(!background) { background=bgcolor; } else { background = "url("+background+")"; } }
function LayerSpecs(Left,Top,Width) { if(No3) {
if(document.all) { Top+=7; Left+=2; Width-=8; }
this.left = Left;
this.top = Top;
this.info = "";
T=7;
for(i=3; i<arguments.length; i++) {
if(document.all) { this.info += "<TR><TD WIDTH="+Width+" onMouseOver='this.bgColor=\""+hovercolor+"\"' onMouseOut='this.bgColor=\"\"'>"+arguments+"</TD></TR>"; }
else { this.info += "<LAYER onMouseOver='this.bgColor=\""+hovercolor+"\"' onMouseOut='this.bgColor=\""+bgcolor+"\"' WIDTH="+Width+" POSITION=RELATIVE TOP="+T+"> "+arguments+"</LAYER>"; }
T+=21;
}
} }
Layer = new Array();
Layer[1] = new LayerSpecs(190,80,350,
'<A onMouseOver="Show(1)" class="ueberschrift_rot">V E R K E H R S R E C H T</A>',
'<A onMouseOver="Show(1)" class="schrift_grau">- Unfallschadenregulierung</A>',
'<A onMouseOver="Show(1)" class="schrift_grau">- Bußgeldverfahren / Strafverfahren</A>',
'<A onMouseOver="Show(1)" class="schrift_grau">- Führerscheinprobleme</A>',
'<A onMouseOver="Show(1)" class="schrift_grau">- Versicherungsprobleme Haftpflicht/Kasko</A>'
);
Layer[2] = new LayerSpecs(190,70,350,
'<A onMouseOver="Show(2)" class="ueberschrift_rot">B A U- U N D <img src="bilder/spacer8x8.gif" width="10" height="8">A R C H I T E K T E N R E C H T</A>',
'<A onMouseOver="Show(2)" class="schrift_grau">- Projektbetreuung während d. Ausführungsphase</A>',
'<A onMouseOver="Show(2)" class="schrift_grau">- gerichtliche/außergerichtliche Geltendmachung</A>',
'<A onMouseOver="Show(2)" class="schrift_grau"><img src="bilder/spacer8x8.gif" width="10" height="8">von Werklohn- und Gewährleistungsansprüchen</A>',
'<A onMouseOver="Show(2)" class="schrift_grau">- Entwurf und Prüfung von Verträgen, Korres-</A>',
'<A onMouseOver="Show(2)" class="schrift_grau"><img src="bilder/spacer8x8.gif" width="10" height="8">pondenz und Vertragsklauseln</A>'
);
Layer[3] = new LayerSpecs(190,80,350,
'<A onMouseOver="Show(3)" class="ueberschrift_rot">T R A N S P O R T-/S P E D I T I O N S R E C H T</A>',
'<A onMouseOver="Show(3)" class="schrift_grau">- ADSp / KVO / CMR </A>',
'<A onMouseOver="Show(3)" class="schrift_grau">- Schadensersatz bei Transportschäden </A>',
'<A onMouseOver="Show(3)" class="schrift_grau">- Provisionsgeltendmachung </A>',
'<A onMouseOver="Show(3)" class="schrift_grau">- Franchiseverträge</A>'
);
j = (Layer[0]) ? 0:1;
for(i=j; i<Layer.length; i++) {
if(document.all && No3) { document.write("<SPAN onMouseOver='clearTimeout(timer)' onMouseOut='Hide("+i+")' ID='L"+i+"' STYLE='position:absolute; visibility:hidden; background:"+background+"; top:"+Layer.top+"; left:"+Layer.left+";'><TABLE STYLE='border:solid "+menu_border+" "+border_color+"'>"+Layer.info+"</TABLE></SPAN>"); }
else if(document.layers && No3) { document.write("<LAYER onMouseOver='clearTimeout(timer)' onMouseOut='Hide("+i+")' ID='L"+i+"' POSITION=ABSOLUTE VISIBILITY=HIDDEN BGCOLOR='"+bgcolor+"' BACKGROUND='"+background+"' TOP="+Layer.top+" LEFT="+Layer.left+">"+Layer.info+"</LAYER>"); }
}
if(document.all) { document.all["menubar"].style.visibility = "visible"; }
else if(document.layers) { document.layers["menubar"].visibility = "visible"; }
// -->
</script>
</span>
____________________________
Wäre schön, wenn ihr mir helfen könntest!
Dank Nicki
Antwort 5 von Supermax vom 27.03.2019, 13:37 Options
<layer> ist ein veraltetes Element. Verwende lieber <div> mit dem CSS-Attribut
z-index:
Antwort 6 von Nicki232 vom 27.03.2019, 13:41 Options
Hallo Supermax!
Kannst du mal ein zweri Zeilen aus dem Quelltext umschreiben, um das ich sehen kann wie die Syntax geht?
Antwort 7 von rfb vom 27.03.2019, 14:55 Options
Ich würd da nix mehr umschreiben sondern nochmals alles neu schreiben.
Da ist ja fast alles vertreten, was Barrieren (im Sinne der BITV) schaftt: JavaScript-Navigation, IFrames, veraltete Tags, extrem fehlerhaftes HTML, viele viele uralte JavaScripte.
Solch Quälcode-Ungetüme waren vielleicht in den frühen 90ern zur Zeit des legendären Netscape4-Browsers noch akzeptabel, ins 21.Jhd passt das nun wirklich nicht mehr.