Orlando: Zwei Frames bzg. zwei Links gleichzeitig ändern

Beitrag lesen

Hi, Stonie

Erstmal Gratulation zur qualitativ hochwertigsten Zwei-Frames-Frage des Jahres ;-p

<script type="text/javascript">
<!--
function FrameFenster(URI1,URI2) {
window.open(URI1)
parent.unten.location.href = URI2
}
//-->
</script>

Das Beispiel bedingt, dass der Frame, in dem die Änderung passieren soll "unten" heißt. Du müsstest also bei mehreren Frames für jede Variante eine eigene Funktion schreiben.

<a href="javascript:FrameFenster('zweiframes_jo.htm','zweiframes_su.htm')">Fersuch</a>

Dollar Fersuch ;-) Allerdings stehen Besucher mit deaktiviertem Javascript etwas im Regen. Daher empfehle ich einen normalen Verweis, die Funktion sollte dann über den Eventhandler 'onclick' aufgerufen werden.

<a href="non_js_alternative.htm" onlick="FrameFenster('zweiframes_jo.htm','zweiframes_su.htm');return false;">Fasuch</a>

Durch 'return false' reagieren auch Browser mit aktivem Javascript korrekt und führen den Verweis auf 'non_js_alternative.htm' nicht aus.

function ZweiFrames(URI1,F1,URI2,F2) {
  Frame1=eval("parent."+F1);
  Frame2=eval("parent."+F2);
  Frame1.location.href = URI1;
  Frame2.location.href = URI2;
}

<a href="javascript:ZweiFrames ('zweiframes_so.htm','oben','zweiframes_su.htm','unten')">
Susan Sarandon
</a>

(...) Aber wozu die "Ecke" da ist, um die mit dem eval "herumgedacht" wird, ist mir beim allerbesten Willen nicht klargeworden - vielleicht ist ja irgendjemand so freundlich und klärt mich diesbezüglich auf.

Also, ganz ohne Bienchen und Blümchen: Mit eval() http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#eval werden die Zeichenketten "parent." und der im Verweis als 'F1' angegebene Framename (zB 'oben') zusammengefügt, sodass in der Variable Frame1 schließlich 'parent.oben' steht.

'Frame1.location.href' ist daher gleich 'parent.oben.location.href'

That's it ;-) Der Vorteil dabei ist, dass du im Verweis selbst angeben kannst, in welchen Frames die veränderungen stattfinden sollen und nicht, wie oben schon gesagt, für jede Variante eine eigene Funktion nötig ist. Das macht die Arbeit bei vielen Frames bestimmt einfacher.

Nachdem ich mir angesehen hatte, was du so schreibst, war mir aufgefallen, dass es auch auf die "Zwei-Frames-gleichzeitig-ändern"-Frage eine wesentlich popligere Antwort gibt:

(ebenso funktionierende Lösung)

Du kannst beim Javascript-Programmieren natürlich gerne popeln *g*

Dies alles nur als Motivation für diejenigen, die ab und zu meinen, ihre Erklärungen würden ja doch nie verstanden! ;o)

Wenn nicht die Fragen manchmal so unverständlich wären ;-)

LG Orlando