URL: https://www.overclockers.at/coding-stuff/js_ie_vs_mozilla_60546/page_1 - zur Vollversion wechseln!
hab ein primitives script für layer hidden/show geschrieben.
Es funkt super im Mozilla ABER im IE zeigt er den zu zeigenden Layer immer nur ganz kurz und dann blendet er wieder auf den Layer der von anfang an gezeigt wird...
Versteh ich nicht weils ja im Mozilla einwandfrei funkt....
kann mir da wer helfen?
AUFRUF
<a onClick="ShowLayer('Layer1');" href="#">Layer1</a>
<a onClick="ShowLayer('Layer2');" href="#">Layer2</a>
METHODE:
function ShowLayer(LayerNr) {
if (LayerNr == 'Layer1'){
document.getElementById('Layer2').style.visibility = 'hidden';
document.getElementById(LayerNr).style.visibility = 'visible';
}
if (LayerNr == 'Layer2'){
document.getElementById('Layer1').style.visibility = 'hidden';
document.getElementById(LayerNr).style.visibility = 'visible';}
}
}//end
LAYER
<div id="Layer1" style="position:absolute; left:356px; top:195px; width:530px; height:460px; z-index:1; background-color:#9999CC; layer-background-color:#9999CC; border: 1px none #000000">
ka warum das ned funkt (((
fehlen da nicht einfache Anführungszeichen ' bei den getElementById(Layer1) ??
btw.. sollten nicht beim zweiten if die hidden/visible vertauscht sein?
diese fehler sind nicht der grund - waren übertragungsfehler also abschreibfehler - funkt im IE noch immer nicht im Mozilla einwandfrei
*heul*
postest du das komplette beispiel, wo es auch einen layer 2 gibt ?
bitte einfach copy pasten und ausprobieren um IE....
<html>
<head>
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
function showHideLayers(LayerNr) {
if (LayerNr == 'Layer1'){
document.getElementById('Layer2').style.visibility = 'hidden';
document.getElementById('Layer3').style.visibility = 'hidden';
document.getElementById('Layer4').style.visibility = 'hidden';
document.getElementById(LayerNr).style.visibility = 'visible';
}
if (LayerNr == 'Layer2'){
document.getElementById('Layer1').style.visibility = 'hidden';
document.getElementById('Layer3').style.visibility = 'hidden';
document.getElementById('Layer4').style.visibility = 'hidden';
document.getElementById(LayerNr).style.visibility = 'visible';
}
if (LayerNr == 'Layer3'){
document.getElementById('Layer1').style.visibility = 'hidden';
document.getElementById('Layer2').style.visibility = 'hidden';
document.getElementById('Layer4').style.visibility = 'hidden';
document.getElementById(LayerNr).style.visibility = 'visible';
}
if (LayerNr == 'Layer4'){
document.getElementById('Layer1').style.visibility = 'hidden';
document.getElementById('Layer2').style.visibility = 'hidden';
document.getElementById('Layer3').style.visibility = 'hidden';
document.getElementById(LayerNr).style.visibility = 'visible';
}
}
// -->
</script>
</head>
<body bgcolor="#00CCCC" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div id="Layer1" style="position:absolute; left:356px; top:195px; width:530px; height:460px; z-index:1; background-color:#9999CC; layer-background-color:#9999CC; border: 1px none #000000">
<blockquote>
<p><font size="+1"><b>Willkommen</b></font></p>
<p> </p>
<p><br>
WillkommenWillkommenWillkommenWillkommenWillkommen
sdfsdfsdfsdfsdsdfsd </p>
<p> </p>
<p> </p>
</blockquote>
</div>
<table width="915" border="0" height="640" align="left">
<tr>
<td height="964"><br>
<br>
<br>
<table width="100%" border="0" height="550" align="center">
<tr>
<td valign="top">
<p><b><font size="+2">Wir über uns:</font></b></p>
<ul>
<li><font size="+1"><b> <a onClick="showHideLayers('Layer1');" href="#">Willkommen</a></b></font></li>
<li><b><font size="+1"> <a onClick="showHideLayers('Layer2');" href="#">Verständnis</a></font></b></li>
<li><b><font size="+1"><a onClick="showHideLayers('Layer3');" href="#">Angebote</a></font></b></li>
<li><b><font size="+1"><a onClick="showHideLayers('Layer4');" href="#">Finanzielles</a></font></b>
</li>
</ul>
<div id="Layer1" style="position:absolute; left:356px; top:195px; width:530px; height:460px; z-index:1; background-color:#9999CC; layer-background-color:#9999CC; border: 1px none #000000">
<blockquote>
<p><font size="+1"><b>Willkommen</b></font></p>
<p> </p>
<p><br>
Wsdfdsfsdf fs fsffsdfsfsdf sdfsd fsdfds </p>
<p> </p>
<p> </p>
</blockquote>
</div>
<div id="Layer2" style="position:absolute; left:356px; top:195px; width:530px; height:460px; z-index:1; background-color:#9999CC; layer-background-color:#9999CC; border: 1px none #000000">
<blockquote>
<p><font size="+1"><b>Verständnis</b></font></p>
<p> </p>
<p>n zahlreichen Möglichkeiten, inmitten der Natur aktiv
zu werden (Spielen im </p>
<p> </p>
<p> </p>
<p> </p>
<p>Wald, Radfahren, Laufen...) oder sich auf unseren Außenanlagen
sportlich zu </p>
<p>sdfsdfsdfdfsd ff sdfsdfsd df sd </p>
<p> </p>
<p> </p>
</blockquote>
</div>
<div id="Layer3" style="position:absolute; left:356px; top:195px; width:530px; height:460px; z-index:1; background-color:#9999CC; layer-background-color:#9999CC; border: 1px none #000000">
<blockquote>
<p><font size="+1"><b>Angebote</b></font></p>
<p> </p>
<p><font size="+1"><b>Angebote</b></font><font size="+1"><b>Angebote</b></font><font size="+1"><b>Angebote</b></font><font size="+1"><b>Angebote</b></font><font size="+1"><b>AngebAngebote</b></font>.
</p>
<p> </p>
<p> </p>
</blockquote>
</div>
<div id="Layer4" style="position:absolute; left:356px; top:195px; width:530px; height:460px; z-index:1; background-color:#9999CC; layer-background-color:#9999CC; border: 1px none #000000">
<blockquote>
<p><font size="+1"><b>Angebote</b></font></p>
<p> </p>
<p><font size="+1"><b>sdfdsfsfdfdsf sd fsdfs fs fsfsf fd</b></font>.
</p>
<p> </p>
<p> </p>
</blockquote>
</div>
<p> </p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
na i bin dann aber gespannt was der fehler ist....
du hast id=layer1 mehrfach vergeben - abgesehen davon geht es im IE 5.00 trotzdem.
also i hob 6.0 und es funkt ned
hmmm lokal mit c:\.... funkts
mit localhost/.... funkts ned - interessant ))
danke für deine Hilfe!
für deine anwendung solltest du dir vielleicht iframes überlegen - die haben bei bedarf auch scroll-balken und die sub-seiten sind einfacher zu warten, weil sie in eigenen dateien sind.
nönö des san nur 4 layers und da ändert sich eh nie was außerdem hasse ich layers aber wenns verlangt werden
hab jetzt (leider?) kein ie60 zum testen... aber mit ie55 gehts auch - hast du schon den Layer1-bug ausgebessert ?
btw.. der code würde so netter aussehen:
function showHideLayers(LayerName) {
for (x=1;x<5;x++)
document.getElementById('Layer'+x).style.visibility = 'hidden';
document.getElementById(LayerName).style.visibility = 'visible';
}
ahh.. jetzt wo ich den code sehe... argl..
versuch doch statt style.visibility doch lieber style.display='none'; bzw.. 'block'... visibility ist eigentlich noch aus NS40 zeiten.
also im klartext:
function showHideLayers(LayerName) {
for (x=1;x<5;x++)
document.getElementById('Layer'+x).style.display = 'none';
document.getElementById(LayerName).style.display = 'block';
}
hehe ich nehme einfach mal an daß sich das JS weigert am localen testserver zu funken - und sei froh daßt den IE 6.0 ned hast der nervt eh nur aber downgrade geht halt nicht
hmm - ich bezweifle dass du eine ahnung hast wovon du redest... javascripts habn nix mit dem server zu tun...Zitat von Nurmihehe ich nehme einfach mal an daß sich das JS weigert am localen testserver zu funken- und sei froh daßt den IE 6.0 ned hast der nervt eh nur aber downgrade geht halt nicht
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025