SELFHTML

Forums-Auslese
Navigationssteuerung bei Frames

Diese Seite ist ein Dokument mit Informationstext

nach unten Dynamische Targets
nach unten Neuer Beitrag in der Forums-Auslese Frameübergreifender Ausdruck einer Seite mit JavaScript im MS Internet Explorer 4.x

nach unten 

Dynamische Targets

Basierend auf einem Forums-Beitrag vom 07.08.1998 von:
E-Mail Christian Wichmann, alaska@jadeweb.de
E-Mail 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:

<form name="Verweis">
<input type=radio name="Ziel" checked> Links im Frame öffnen<br>
<input type=radio name="Ziel"> Links im neuen Fenster öffnen
</form>

Fügen Sie auf den jeweiligen Seiten dann eine Funktion wie hier im Beispiel ein, und realisieren den Aufruf der neuen Seite mittels JavaScripts.

Beispiel:

<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>

Hinweise:

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
Seite Verweis im neuen Fenster öffnen - mit und ohne JavaScript.

nach obennach unten 

Frameübergreifender Ausdruck einer Seite mit JavaScript im MS Internet Explorer 4.x

Basierend auf einen Beitrag von:
E-Mail 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 Seite click() des All-Objektes auslösen.

Beispiel:

<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>

Erläuterung

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 Seite 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 Seite Ausdruck einer Seite mit JavaScript und den SELFHTML-Abschnitt Seite frames: Allgemeines zur Verwendung.

nach oben
weiter:Weiter Seite JavaScript-Kernobjekte
zurück:Zurück Seite Neue Fenster mit JavaScript
 

© 2000 Seite das Redaktionsteam