Carsten: Frameset reload unter Beibehalten des aktuellen Zustandes

Beitrag lesen

Hallo Tobias,

tja, deine Gedanken zum Forum hat Alexander ja schon sehr treffend
beantwortet.

bleibt nur

[...]  zwei Fragen im Forum, von denen eine unbeantwortet blieb.

und zwar <../../sfarchiv/2000_3/t16248.htm#a82058>

Also, ich war schon überrascht, dass wirklich mal Keiner geantwortet
hat. Andererseits hat es mich durchaus einige Zeit gekostet deine
Frage zu verstehen, ich bin mir auch immer noch nicht sicher
ob meine Lösung das ist, was du brauchst.

Das was du vorhast ist nicht so einfach hinzukriegen. Dein Posting
weist ja darauf hin, das du JavaScript-Einsteiger bist und stellt
an mich als potentiellen Antworter damit den Anspruch, eine
einsteigertaugliche Antwort zu finden. Vielleicht war das denen die
dein Posting gelesen haben zu zeitaufwändig?

Stell dir folgende Antwort vor: "schreib den link auf den inhalt-frame
im frameset doch mit document.write, jede inhalt-frame datei setzt
window.name (als übergabevariable die auch bei reload erhalten bleibt)
des framesets auf seinen eigenen dateinamen." Eventuell noch mit der
Bemerkung, das das ungetestet sei aber klappen sollte, im Luxusfalle
mit link auf http://www.teamone.de/selfaktuell/artikel/wertueb.htm.

Hätte dich das weitergebracht?

Ok, heute ist aber Sonnabend und ich hatte genug Zeit, also weiter
zur Auflösung:

in index.html

<script>
<!--
if(!self.name)
  self.name="home";

document.open();
document.write('<frameset rows="115,*" border=2 framespacing=2 bordercolor=orange>');
document.write('<frame src="menue.html" name="menue" frameborder=0 noresize>');
document.write('<frame src="'+self.name+'.html" name="inhalt">');
                //     hier   ^^^^^^^^^ wird der grade aktuelle Inhalt eingesetzt.
document.write('</frameset>');
document.close();
// -->
</script>
<noscript>
    <frameset rows="115,*" border=2 framespacing=2 bordercolor=orange>
        <frame src="menue.html" name="menue" frameborder=0 noresize>
        <frame src="full.html" name="inhalt">
    </frameset>
</noscript>

Warum das ganze Frameset mit document.write ausgegeben werden muss,
weiß ich auch nicht, aber sonst klappt es nicht.

in home.html

<script>
    parent.name="home";
</script>

in drehgen.html

<script>
    parent.name="drehgen";
</script>

in absperrung.html

<script>
    parent.name="absperrung";
</script>

und so weiter, wo du das in den Dateien einfügst ist relativ egal.
(->also wie üblich in den head Bereich)

Mit dem parent.name Trick können nur Wert übergeben werden, die den üblichen
Variablen-Namenskonventionen unterliegen (Abhilfe und weiteres unter obigem Link).
Deswegen wird auch das .html erst in der index.html beim document.write() wieder
drangehängt, der Punkt ginge da so nicht durch. (Irgendwelche / für
Unterverzeichnisse gehen auch nicht, so geht es also nur, wenn die
html-Dateien alle im gleichen Verzeichnis liegen.)

Immerhin löst es dein Problem mit den
Fullscreen-Seiten (die mit den Bildern) gleich mit.
(Deine Frage <../../sfarchiv/2000_2/t16144.htm#a81587>)

Gruss,
Carsten