SELFHTML Forums-Auslese JavaScript | |
Forums-Auslese |
|
Dynamische Targets |
|
Basierend auf einem Forums-Beitrag vom 07.08.1998 von:
Christian Wichmann, alaska@jadeweb.de
Stefan Muenz, muenz@csi.com
Es gehört allgemein zum "guten Stil" eines Web-Autors, externe Seiten in einem separaten Fenster anzubieten: gerade wenn die eigenen Seiten Teil eines Frame-Sets sind, hinterlässt es keinen guten Eindruck, die Inhalte eines anderen Autors innerhalb seiner eigenen Frames "einzupferchen". Doch auch manch eigene "Kreation" macht einen besseren Eindruck, wenn die Seite "standalone" dargestellt wird. Andererseits sind immer noch viele Besucher mit kleinen Monitoren oder knapp ausgerüsteten Computern unterwegs, denen das ständige Aufpoppen neuer Browserfenster eher ein Dorn im Auge ist.
Überlassen Sie bei der Frage, ob die neue Seite im neuen oder im eigenen Frame-Fenster aufgerufen werden soll, doch einfach den Besucher die Entscheidung!
Mittels Radiobuttons in einem der Frames (außer natürlich in dem Anzeigeframes) und einer entsprechenden JavaScript-Funktion lässt sich dies einfach verwirklichen:
Fügen Sie auf den jeweiligen Seiten dann eine Funktion wie hier im Beispiel ein, und realisieren den Aufruf der neuen Seite mittels JavaScripts.
<html> <head> <title>Verweise</title> <script language="JavaScript"> <!-- function goTo(URL) { if (top.frames.length >0 && parent.FussFrame.document.Verweis.Ziel[0].checked == true) self.location.href = URL; else window.open(URL, "", "menubar=1,location=1,toolbar=1,status=1,scrollbars=1,directories=1"); } //--> </script> </head> <body> <a href="JavaScript:goTo('datei.htm')">Ein Verweis</a> </body> </html> |
Mit parent.FussFrame.document.Verweis.Ziel[0].checked wird im Frame mit den Namen FussFrame der Button Links im Frame öffnen abgefragt. Den Namen des Frames müssen Sie dann den jeweiligen Bedingungen anpassen.
Möchten Sie sicherstellen, dass der Link auch von Browsern ohne JavaScript ausgeführt wird, so lesen Sie hierzu
Verweis im neuen Fenster öffnen - mit und ohne JavaScript.
Basierend auf einen Beitrag von:
Antje Hofmann, ah@pc-anfaenger.de
Sie möchten im Menü eines Framesets einen Button zum Drucken der geladenen Seiten anbieten. Das Ausdrucken einer Seite in einem anderen Framefenster ist ein Problem, da die zu druckende Seite die aktive Seite sein muss. Insbesondere im MS Internet Explorer der Version 4 ist dies problematisch, da hier der Druckbefehl von der auszudruckenden Seite aufgerufen werden muss. In diesem Fall genügt es nicht, die Funktion mit der gewohnten Referenzierung in Frames aufzurufen. Das zu druckende Dokument muss die Druckfunktion aufrufen.
Dieses Problem umgehen Sie, indem Sie im auszudruckenden Dokument einen unsichtbaren Link (keine Angabe eines Linktextes) definieren, der die Druckfunktion aufruft. Diesen Link können Sie unter Verwendung der Methode click() des All-Objektes auslösen.
<html><head><title>Framedefinition</title></head> <frameset cols"25%,75%"> <frame name="Frame1" src="seite1.htm"> <frame name="Frame2" src="seite2.htm"> </frameset> </html> <html><head><title>Druckdialog aufrufende Seite - Seite 1</title> <script language="JavaScript"> function Drucken() { parent.frames.Frame2.focus(); if (window.print) parent.frames.Frame2.print(); if(document.all && navigator.appVersion.substring(22,23)==4) { parent.frames.Frame2.document.all.druck.click(); } } function ie4() { self.focus(); var OLECMDID_PRINT = 6; var OLECMDEXECOPT_DONTPROMPTUSER = 2; var OLECMDEXECOPT_PROMPTUSER = 1; var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; document.body.insertAdjacentHTML('beforeEnd',WebBrowser); WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER); WebBrowser1.outerHTML = ''; } </script></head> <body> <form><input type="button" value="Seite drucken" onClick="Drucken()"></form> </body></html> <html><head><title>zu druckende Datei - Seite2</title> </head> <body> Text <a href="javascript:parent.frames.Frame1.ie4();" id="druck"></a> </body></html> |
Die angegebenen Beispielseiten befinden sich in verschiedenen Frames. Innerhalb der Funktion Drucken() wird die zu druckende Seite mit parent.frames.Frame2.focus(); zur aktiven Seite. Browser, welche die Methode print() kennen, drucken die angesprochene Seite aus.
Im MS Internet Explorer Version 4.x wird der unsichtbare Link auf der zu druckenden Seite aktiviert. Dieser ruft seinerseits nun die Funktion ie4() auf. Diese Funktion enthält den Druckbefehl für diesen Browser und druckt die Seite aus.
Lesen Sie zum besseren Verständnis auch den Forum-Auslesebeitrag Ausdruck einer Seite mit JavaScript und den SELFHTML-Abschnitt frames: Allgemeines zur Verwendung.
weiter: | JavaScript-Kernobjekte |
zurück: | Neue Fenster mit JavaScript |
SELFHTML Forums-Auslese JavaScript |
© 2000 das Redaktionsteam