Layer "scrollen" NN nach resize Layer nichr mehr ansprechbar!
Fraenk
- dhtml
0 Antje Hofmann0 Fraenk
Hallo,
mir schwirrt der Kopf. Ich habe das Forums-Archiv von vorne nach hinten durchwühlt, aber steig nicht durch!
Folgendes Problem:
Ich habe zwei Frames:
1. Frame: Layer "TEST" mit Textinhalt+Tabelle
2 .Frame: Grafik mit JavaScriptaufruf zum scrollen(bewegen) von Test
Alles klappt soweit, aber nach einem resize ist TEST in NN nicht mehr ansprechbar! Wie mache ich den wieder flott?
Vor allem in einem anderen Frame? Zum bessen Verständnis das Script:
var timer = null;
var timer_running = false;
function scroll_dn()
{ var version = parseFloat(navigator.appVersion);
if(!timer_running)
return
if (navigator.appName.indexOf('Netscape') != -1)
{ if (version >= 4.0 && (top.content.document.TEST.clip.height)\*-1 < (top.content.document.TEST.pageY-100 ))
{ top.content.document.TEST.pageY = (top.content.document.TEST.pageY-8 )
}
}
else if (navigator.appName.indexOf('Microsoft') != -1)
{ if (version >= 4.0)
{ top.content.scroll(0,top.content.document.body.scrollTop+16);
}
}
timer = window.setTimeout("scrolldn()", 50)
}
function scroll_up()
{ var version = parseFloat(navigator.appVersion);
if(!timer_running)
return
if (navigator.appName.indexOf('Netscape') != -1)
{ if (version >= 4.0 && top.content.document.TEST.pageY<0 )
{ top.content.document.TEST.pageY = (top.content.document.TEST.pageY+8 )
}
}
else if (navigator.appName.indexOf('Microsoft') != -1)
{ if (version >= 4.0)
{ top.content.scroll(0,top.content.document.body.scrollTop-16);
}
}
timer = window.setTimeout("scroll\_up()", 50)
}
function stopscr()
{
if(timer) window.clearTimeout(timer);
timer_running = false;
timer = null;
}
function startup()
{
timer_running = true;
scroll_up();
}
function startdn()
{
timer_running = true;
scroll_dn();
}
Vielen Dank im Voraus!
Fraenk
Hallo Fraenk
Alles klappt soweit, aber nach einem resize ist TEST in NN nicht mehr ansprechbar! Wie mache ich den wieder flott?
Vor allem in einem anderen Frame? Zum bessen Verständnis das Script:
Das ist ein alter Bug im NN. Da hilft nur ein Neuladen der Seite.
Hier das passende Script zum Reloaden:
<script language="JavaScript">
<!--
/*Ueberwachung Netscape Navigator*/
/**
* resize.js 0.3 970811
* by gary smith
* js component for "reloading page onResize"
*/
if(!window.saveInnerWidth)
{
window.onresize = resize;
window.saveInnerWidth = window.innerWidth;
window.saveInnerHeight = window.innerHeight;
}
function resize()
{
if (saveInnerWidth < window.innerWidth saveInnerWidth > window.innerWidth
saveInnerHeight > window.innerHeight saveInnerHeight < window.innerHeight)
{
window.history.go(0);
}
}
//-->
</script>
eventuell gesetzte Variablen gehen aber verloren. Abhilfe dagegen: diese im Fensternamen speichern, der bleibt erhalten.
Viele Grüße
Antje
Hallo Antje,
vielen Dank für den Hinweis. Könntest Du mir noch einen kleinen Tipp geben, wo ich das Script einbauen
muss?
In einem der Frames oder im Parent-Window?
Ein Anmerkung noch von mir: Daten in Formularfeldern sind auch resistent gegen reload und sogar
beim Seitenwechsel (andere URL)!
D.h. man kann noch einen dritten Frame mit der Höhe 0 Pixel einbauen und und dort die Variablen
in einem Formularfeld zwischenparken.
Viele Grüße und nochmals Danke!
Fraenk
Hallo Fraenk,
vielen Dank für den Hinweis. Könntest Du mir noch einen kleinen Tipp geben, wo ich das Script einbauen
muss?
In einem der Frames oder im Parent-Window?
jetzt hast du mich erwischt :-)
Mit Frames arbeite ich so gut wie nie, deshalb keine genaue Auskunft geben.
So aus den Gefühl heraus würde ich sagen, nimm das Parent-Window.
Ich würde es an deiner Stelle einfach austesten.
Ein Anmerkung noch von mir: Daten in Formularfeldern sind auch resistent gegen reload und sogar
beim Seitenwechsel (andere URL)!
D.h. man kann noch einen dritten Frame mit der Höhe 0 Pixel einbauen und und dort die Variablen
in einem Formularfeld zwischenparken.
Werde ich mir merken. Dabei fällt mir ein, in irgendeinem Teil meiner Seite habe ich genau deshalb sogar ein Reset der Formulare in das Reloadscript eingebaut. Nur die Schlußfolgerung, auf die du mich hinweist, habe ich nicht gezogen. Na man lernt eben nie aus.
Viele Grüße
Antje