holger kuehne: Resize Problemlösung »»die 1000te«« und kein ende.

Beitrag lesen

Hi ich bins noch mal
Ich hab mal versucht so ein kleines "Layerproblem" zu basteln. Dabei ist mir aufgefallen, dass die ganze Geschichte gar nicht so einfach ist. Der Grund ist der, dass bei der Loesung des Reloadproblems immer dieselbe Seite wieder geladen wird (mit window.history.go(0); ) Alle darauffolgenden Befehle (z.B lade in layerX den InhaltY oder mache layerZ unsichtbar) scheinen davor ausgefuehrt zu werden (oder gar nicht mehr) und bringen deshalb keine Loesung des Problems. Auch eventuell veraenderte Variablen haben ja bekanntlich nach dem Laden einer neuen Seite wieder ihre urspruenglichen Werte :-((  
Aber wie so oft gibt es auch hier eine Loesung des Problems: Das einzige, was nach dem Laden einer Seite erhalten bleibt ist der Fenstername. Deshalb kann man ueber diesen auch Variableninhalte uebergeben. In meinem folgenden kleinen Beispiel wird je nach Fenstername ein anderer Layer in den Vordergrund geschaltet. Das fuehrt dazu, dass auch nach einem reload der zuletzt aktive Layer im Vordergrund bleibt. (Ich hoffe mich haut keiner wegen des langen Beispiels)
<html>
<head>
<title>Layerprobleme</title>
<script language="JavaScript">
<!--
var hilfe=1;
for (k=1;k<4;k++){
if (window.name==k) hilfe=k;
}
if(!window.saveInnerWidth)
{ window.onresize = resizeIt;
  window.saveInnerWidth = window.innerWidth;
  window.saveInnerHeight = window.innerHeight; }
function resizeIt()
{ if (saveInnerWidth < window.innerWidth
  saveInnerWidth > window.innerWidth
  saveInnerHeight > window.innerHeight
  saveInnerHeight < window.innerHeight )
{ window.name=hilfe; window.history.go(0); }}
function Layerwechsel(i) {
if (document.layers){
for (j=1;j<4;j++)
document.layers[j].visibility="hide";
document.layers[i].visibility="show";
hilfe=i;
}
return
}
//-->
</script>
</head>
<body text="#000000" onload="Layerwechsel(hilfe)" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<div id="layer1" style="position:absolute; top:10px; left:10px; width:300px; height:200px; visibility:visible;z-index:1;">
<table width=300 height=200 border=0 cellspacing=0 cellpadding=0 bgcolor=#009900>
<tr><td align=center>
<table width=154 height=104 border=0 cellspacing=0 cellpadding=0 bgcolor=black>
<tr><td>
hi
</td></tr></table>
</td></tr></table>
</div>
<div id="layer2" style="position:absolute; top:60px; left:85px; width:150px; height:100px; visibility:hidden; z-index:10;">
<table width=150 height=100 border=0 cellspacing=0 cellpadding=0 bgcolor=blue><tr><td align=center>
Inhalt von Layer1<br>
Inhalt von Layer1<br>
Inhalt von Layer1<br>
</td></tr></table>
</div>
<div id="layer3" style="position:absolute; top:60px; left:85px; width:150px; height:100px; visibility:hidden; z-index:10;">
<table width=150 height=100 border=0 cellspacing=0 cellpadding=0 bgcolor=red><tr><td align=center>
Inhalt von Layer2<br>
Inhalt von Layer2<br>
Inhalt von Layer2<br>
</td></tr></table>
</div>
<div id="layer4" style="position:absolute; top:60px; left:85px; width:150px; height:100px; visibility:hidden; z-index:10;">
<table width=150 height=100 border=0 cellspacing=0 cellpadding=0 bgcolor=00ccff><tr><td align=center>
Inhalt von Layer3<br>
Inhalt von Layer3<br>
Inhalt von Layer3<br>
</td></tr></table>
</div>
<div id="Menue" style="position:absolute; top:60px; left:15px; width:50px; height:100px;  z-index:100;">
<table width=60 height=100 bgcolor="#330099"><tr><td align=center>
<a href=# onclick="Layerwechsel(1);return false;">Layer1</a>
<a href=# onclick="Layerwechsel(2);return false;">Layer2</a>
<a href=# onclick="Layerwechsel(3);return false;">Layer3</a>
</td></tr></table>
</div>
</body>
</html>

Da du aber wahrscheinlich mehrere Variablen oder unsichtbare Felder uebergeben willst hier noch ein sehr hilfreicher link zum Thema Variablen ueber Fenstername uebergeben:
http://www.teamone.de/selfaktuell/wertueb.htm#a2

viele Gruesse Holger