Öffnen von 2 Seiten gleichzeitig

[Micha's Home]

  [Tips&Tricks]

[Links]


Wenn man mit Frames arbeitet, fehlt manchmal die Möglichkeit, 2 Seiten gleichzeitig zu öffnen.
Ermöglicht wir dies durch Javascript.

parent.frameName1.location.href = 'whatever.html';
parent.frameName2.location.href = 'whatelse.html';

In einem Link kann das z.B. so aussehen:

<a href="javascript:parent.Inhalt.location.href='wtricks2.htm';
parent.Right.location.href ='wtricks3.htm';" target="_self">Beispiel</a>

    Beispiel

Achtung:

Nicht vergessen, daß der Target-Frame keine ganze Seite sein darf (target="_self").


Mit dieser Methode kann man auch ein vollständiges Frame-Set 'on-the-fly' generieren. Dazu öffnet man in einer onclick-Funktion ein Fenster und generiert den Code:

var w = open('', 'w');

und schreibt ein Frame-Set:

w.document.open();
w.document.write('<FRAMSET ROWS="50%, 50%">');
w.document.write('<FRAME NAME="frame1" SRC="frame1.html">');
w.document.write('<FRAME NAME="frame2" SRC="frame2.html">');
w.document.write('<\/FRAMSET>');                         /* Achtung: gequoteter slash: \    / ! */
w.document.close();

Die Frame-Dokumente selbst können danach ebenfalls geschrieben (generiert) werden:

w.frame1.document.open()
w.frame1.document.write(...)
w.frame1.document.close();

usw..

Die Generierung von Seiten mittels Javascript ist allerdings nicht gerade sehr lesbar, da hier immer wieder Zeichen mittels Backslah '\' gequotet werden müssen. Das führt schnell zu Fehlern.

Zur Verbesserung der Übersichtlichkeit ist es u.U. ratsam, die Seite erst mal in einer Variablen aufzubauen und dann auszugeben:

var doc = '<HTML>';
doc += '<HEAD>';
doc += '<SCRIPT>';
doc += ' function f () {alert ("f");}';
doc += ' function g () {alert ("g");}';
doc += '<\/SCRIPT>';
doc += '<\/HEAD>';
doc += '<BODY>';
doc += '<A HREF="javascript: f(); void 0">f<\/A>';
doc += '<BR>';
doc += '<A HREF="javascript: g(); void 0">g<\/A>';
doc += '<\/BODY>';
doc += '<\/HTML>';
var w = open ('', 'w');
w.document.open();
w.document.write(doc);
w.document.close();

 Weitere Tips: Java-Script-FAQ

Letzte Änderung: 02.10.10