|
Öffnen von 2 Seiten gleichzeitig
|
|
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 |