Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

JavaScript Layer (visible, hide)





Frage

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 1 von DeluxeStyle

poste mal deine url oder deinen quellcode

der ie backt immer sein eigenes süppchen

Antwort 2 von rfb

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

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

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 (&ouml;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+">&nbsp;"+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

<layer> ist ein veraltetes Element. Verwende lieber <div> mit dem CSS-Attribut
z-index:


Antwort 6 von Nicki232

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

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.