SELFHTML

Forums-Auslese
Neue Fenster mit JavaScript

Diese Seite ist ein Dokument mit Informationstext

nach unten Verweis im neuen Fenster öffnen - mit und ohne JavaScript
nach unten Separates Browserfenster mit dynamischen Frames
nach unten Object-Problem beim Öffnen eines Verweisziels im neuen Fensters umgehen
nach unten Neuer Beitrag in der Forums-Auslese Neues Fenster mit allen Symbolleisten erzeugen
nach unten Neuer Beitrag in der Forums-Auslese Variable Fenster gleichen Fensternamens
nach unten Neuer Beitrag in der Forums-Auslese Ein öffnendes Fenster (Mutterfenster) ansprechen
nach unten Neuer Beitrag in der Forums-Auslese Ein Fenster ständig im Vordergrund halten

nach unten 

Verweis im neuen Fenster öffnen - mit und ohne JavaScript

Basierend auf Forums-Beiträgen vom 17.08.1998 von:
E-Mail Stefan Muenz, muenz@csi.com
E-Mail Christine Kuehnel, kuehnel@screenExa.net

Im folgenden Beispiel wird mit Hilfe von JavaScript ein Verweisziel in einem neuen Fenster geöffnet. Bei Browsern, die kein JavaScript interpretieren, bzw. bei denen JavaScript ausgeschaltet ist, wird das Verweisziel ebenfalls in einem neuen Fenster geöffnet, jedoch nur mit reinem HTML-Code.
In der JavaScript-Variante sind Zusatzangaben wie width="..." und height="..." möglich, in der reinen HTML-Variante dagegen nicht.

Beispiel:

<html>
<head>
<title>JavaScript-Links</title>
<script language="JavaScript">
<!--

function targetLink(URL)
{
  if(document.images)
    targetWin = open(URL,"Neufenster","width=400,height=300");
}

//-->
</script>
</head>

<body>

<a href="ziel.htm" target="_blank" onClick="targetLink('ziel.htm');return false">Text</a>

</body>
</html>

Erläuterung:

Mit JavaScript wird ein Fenster geöffnet, return false sorgt dafür, dass der Link selbst in diesem Fall nicht ausgeführt wird.
Eine Einschränkung gibt es dabei: Browser, die nur JavaScript 1.0 kennen (Netscape Navigator 2 und MS Internet Explorer 3) können return false nicht interpretieren und führen den Link aus. Sie werden mit if(document.images) ausgeschlossen und zur Kategorie der Browser ohne JavaScript zugeordnet. Diese reagieren nicht auf onClick, öffnen dafür durch target="_blank" ein ganz normales neues Fenster ohne Größenvorgaben.
Ältere Browser, die target="_blank" nicht interpretieren, führen den Link ganz normal aus und öffnen die Zieldatei im selben Fenster.

nach obennach unten 

Separates Browserfenster mit dynamischen Frames

Basierend auf einem Forums-Beitrag vom 01.08.1998 von:
E-Mail Stefan Muenz, muenz@csi.com
und auf einem Forums-Beitrag vom 03.08.1998 von
E-Mail Christoph Lipp, christoph.lipp@gmx.net

Möchten Sie ein separates Browser-Fenster, das ein Frame-Set enthält, öffnen und dabei den Inhalt eines der Frames durch einen Parameter frei wählen, so können Sie dazu im öffnenden Fenster ein verstecktes Formular zur Parameterablage definieren.

<form name="Daten"><input name="varFrame" type=hidden value=""></form>

Die aufrufende Datei enthält dann eine Funktion, die den Parameter im versteckten Formular setzt und das Fenster öffnet.

Beispiel:

<html>
<head>
<title>Aufruf</title>
<script language="JavaScript">
<!--

function openWindow(filename)
{
  document.Daten.varFrame.value = filename;
  NewWindow = window.open('separat.html','NewWindow');
  NewWindow.focus();
}

//-->
</script>
</head>

<body>

<form name="Daten"><input name="varFrame" type=hidden value=""></form>

<a href="JavaScript:openWindow('wunsch.htm')">neues Fenster</a>

</body>
</html>

Die aufgerufene Datei "separat.html" generiert dabei das Frame-Set per JavaScript. Beim Erzeugen des Frame-Sets wird das versteckte Formularfeld abgefragt und damit die gewünschte Seite aufgerufen.

Beispiel (separat.html):

<html>
<head>
<title>Frameerzeugung</title>
<script language="JavaScript">
<!--

  Variable= opener.document.Daten.varFrame.value;
  document.write("<frameset rows=\"70,*\">");
  document.write("<frame src=\"fix.html\" name=\"frame1\">");
  document.write("<frame src=\""+Variable+"\"name=\"frame2\">");
  document.write("</frameset>");

//-->
</script>
</head>

<body>

</body>
</html>

Hinweis:

Ein weiterer Ansatz ist die von Christine Kühnel auf deutschsprachige Seite http://www.screenexa.net/js_notiz/tips/frame_set.htm vorgestellte Lösung.
Möchten Sie sicherstellen, dass der Link auch in Browser ohne JavaScript angezeigt wird, so lesen Sie hierzu nach oben Verweis im neuen Fenster öffnen - mit und ohne JavaScript.

nach obennach unten 

Object-Problem beim Öffnen eines Verweisziels im neuen Fensters umgehen

Basierend auf Forums-Beiträgen vom 18.11.1998 von:
E-Mail BioNauT, danners-outfitter@odn.de

Neue Fenster erzeugt man mit der Methode Seite open() des Objektes Window. Es ist jedoch nicht möglich, ein neues Fenster durch einen direkten Aufruf über einen Link zu erzeugen.
Der Aufruf <a href="javascript:window.open('test.htm','Name','width=200,height=200')">Link</a> öffnet ein neues Fenster. Gleichzeitig führt der Browser jedoch auch den Link aus. Dies führt dazu, dass die aktuelle Seite verlassen wird und eine browserinterne Seite mit der Mitteilung [object] (Internet Explorer) oder [object window] (Netscape) angezeigt wird.
Sie können dieses Problem durch die Verwendung einer Funktion umgehen. Alternativ ist es auch möglich, das Fenster durch Verwendung des Event-Handler Seite onClick zu öffnen.

Beispiel:

<script language="JavaScript">
<!--

function Fenster()
 {window.open("Seite.htm","Name","width=300,height=200")}

//-->
</script>

<a href="Javascript:Fenster()">Link</a>

<a href="#" onClick="window.open('Seite.htm','Name','width=300,height=200');
return false">Link</a>

nach obennach unten 

Neues Fenster mit allen Symbolleisten erzeugen

Basierend auf Forums-Beiträgen vom 09.01.1999 von:
E-Mail Roland, rbion@netcologne.de
E-Mail Stefan Muenz, muenz@csi.com
und vom 10.1.1999 von:
E-Mail Christine Kuehnel, kuehnel@screenExa.net

Mit der Methode open() des Seite Windowsobjektes können Sie neue Fenster erzeugen. Die Darstellung des Fensters ist jeweils abhängig von den Parameterangaben und den Browservoreinstellungen.
Ein vollständig neues Browserfenster mit allen Symbolleisten erhalten Sie durch die Angabe der folgenden Parameter:

"width=550,height=500,resizable=1,location=1,status=1,menubar=1,scrollbars=1,toolbar=1,directories=1"

Beispiel:

<html>
<head>
<title>Selektion eines Auswahlmenüs in einem neuen Fenster öffnen</title>

<script language="JavaScript">
<!--

function Go(x)
 {
 if(x == "nothing")
 {if (document.images){
  document.forms[0].reset();
  document.forms[0].elements[0].blur();}
  return;
 }
 else
 {
  F = window.open(x,"NeuFenster",
  "width=550,height=500,resizable=1,location=1,status=1,menubar=1,scrollbars=1,toolbar=1,directories=1");
  if (document.images) {setTimeout("F.focus()",40);
  document.forms[0].reset();
  document.forms[0].elements[0].blur();}
 }
 }

//-->
</script>
</head>

<body>

<form>
 <select size=1 name="Auswahl" onChange=
 "Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)">
 <option value="nothing">[ Titel ]
 <option value="seite1.htm">Seite 1
 <option value="seite2.htm">Seite 2
 </select></form>

</body>
</html>

Erläuterung:

Im Beispiel wird eine Variante der in SELFHTML vorgestellten Quickbar verwendet. Der Unterschied zu dem dort gezeigten Beispiel besteht darin, dass die ausgewählte Seite in einem neuen Fenster geöffnet wird. Lesen Sie zum Verständnis des Wirkungsprinzips dieses Beispieles den SELFHTML-Abschnitt Seite Verweisliste als Auswahlliste.
Mit der Auswahl einer Seite wird ein neues vollständiges Browserfenster geöffnet. Lesen Sie zur Wirkungsweise der verwendeten Parameter den SELFHTML-Abschnitt Seite open(). Der Parameter directories bewirkt das Einblenden der persönlichen Linksleiste.
Dieses neue Fenster wird durch setTimeout("F.focus()",40) mit einer leichten Zeitverzögerung aktiviert. Diese Verzögerung ist notwendig, damit der MS Internet Explorer den Fokus richtig ausführt.
Dieses Beispiel können Sie im Netscape Navigator ab der Version 3 und im MS Internet Explorer ab der Version 4 uneingeschränkt einsetzen. Im MS Internet Explorer Version 3 wird die Aktivierung des neuen Fensters nur bei der erstmaligen Verwendung ausgeführt.

Hinweise

Verwenden Sie im Parameterstring keine Leerzeichen, da diese Fehler verursachen können. Ein Fehler im Parameterstring bewirkt, dass nur die Angaben bis zur Fehlerstelle interpretiert werden. Jede folgende Angabe wird dann von den Browsern ignoriert.
Sie können beim Generieren des Parameterstrings anstatt der 1 auch die Bezeichnung yes verwenden. Verwenden Sie falls erforderlich alle Parameter und deaktivieren Sie auszuschließende Parameter durch 0 oder no.
Einen Parameterstring nach Wunsch können Sie auf Christine Kühnels Seite deutschsprachige Seite http://screenexa.net/js_notiz/tips/win00.htm generieren lassen.

nach obennach unten 

Variable Fenster gleichen Fensternamens

Basierend auf einem Forums-Beitrag vom 24.03.1999 von:
E-Mail Leonhard Kronast, Leonhard.Kronast@gmx.de

Das Erzeugen von neuen Fenstern mittels JavaScript erlaubt eine Anpassung der Fenstergröße und deren Aussehen. Ein einmal geöffnetes Fenster können Sie jedoch nur noch in seiner Position und Größe verändern.
Weitere Parameter lassen sich zwar ändern, indem das geöffnete Fenster geschlossen und ein Neues erzeugt wird. Doch besteht das Problem darin, dass nicht bekannt ist, ob der Anwender dieses Fenster bereits geschlossen hat. Dies lässt sich durch Verwendung der Eigenschaft Seite closed des Windowsobjektes abfragen. Nach dem Schließen des Fensters können Sie wiederum ein neues Fenster mit neuen Parametern öffnen.

Beispiel:

<html>
<head>
<title>Variable Fenster gleichen Fensternamens</title>
<script language="JavaScript">
<!--

var zweitfenster=null;

function oeffnen(welches,optionen)
 {
  if (zweitfenster != null)
    if (!zweitfenster.closed)
         zweitfenster.close();
  zweitfenster = window.open(welches,"Neufenster",optionen);
  zweitfenster.focus();
 }

//-->
</script>
</head>

<body>

<a href="javascript:oeffnen('seite1.htm','width=400,height=300,resizable=0,scrollbars=1')">Seite 1</a>
<a href="javascript:oeffnen('seite2.htm','width=200,height=300,resizable=1,scrollbars=0')">Seite 2</a>

</body>
</html>

Erläuterung:

Mit dem Einlesen der Datei wird der Variablen zweitfenster der Wert Null zugewiesen. Dieser wird in der Zeile if (zweitfenster != null) abgefragt. Wurde noch kein neues Fenster geöffnet, wird nun eins mit den übergebenen Werten erstellt. Mit dem Öffnen dieses neuen Fensters wird der Variablen zweitfenster ein Wert zugewiesen. Beim erneuten Aufruf der Funktion oeffnen() wird nun geprüft, ob die Eigenschaft zweitfenster.closed falsch ist. Ist dies der Fall bedeutet es, dass das Fenster noch geöffnet ist. Die Funktion schließt dieses dann und öffnet wiederum ein neues Fenster mit neuen Parametern. Ist die Eigenschaft zweitfenster.closed wahr, wird das neue Fenster sofort geöffnet.

Dieses Beispiel können Sie uneingeschränkt im MS Internet Explorer und dem Netscape Navigator ab der Version 4 verwenden. Für den Netscape Navigator 3.0 benötigen Sie ein Workaround, da dieser nach dem Schließen des Fensters die Ausführung der Funktion abbricht. Dazu erzeugen Sie 2 getrennte Funktionen und rufen die Funktion oeffnen() mit einer kleinen Zeitverzögerung vor der Funktion schliessen() auf.

Workaround des Beispieles für den Netscape Navigator Version 3

<html><head><title>Existenz eines geöffneten Fensters überprüfen</title>

<script language="JavaScript">
<!--Workaround Netscape Navigator 3.0 --
var zweitfenster=null;

function schliessen()
 { if (zweitfenster != null)
     {if (!zweitfenster.closed)zweitfenster.close();}
 }

function oeffnen(welches,optionen)
 {
  zweitfenster = window.open(welches, "",optionen);
  zweitfenster.focus();
 }

//-->
</script>
</head>

<body>

<a href="javascript:setTimeout('oeffnen(\'seite1.htm\',\'width=400,height=300\')',200);schliessen();">Seite 1</a>
<a href="javascript:setTimeout('oeffnen(\'seite2.htm\',\'width=200,height=300\')',200);schliessen();">Seite 2</a>

</body></html>

nach obennach unten 

Ein öffnendes Fenster (Mutterfenster) ansprechen

Basierend auf einem Forums-Beitrag vom 24.05.1999 von
E-Mail Heiko Budras, Heiko.Budras@frankfurt.netsurf.de
und auf einem Forums-Beitrag vom 05.06.1999 von:
E-Mail Stefan Muenz, muenz@compuserve.com

Mit der Methode Seite open() des Windows-Objektes können Sie neue Fenster öffnen. Oft ist es jedoch erforderlich, im öffnenden Fenster Aktionen auszuführen.
Zum Ansprechen des öffnenden Fensters (Mutterfensters) ist das reservierte Wort opener notwendig. Lesen Sie dazu auch den SELFHTML-Abschnitt Seite window: Allgemeines zur Verwendung.

Beispiele:

opener.location.href='datei2.htm';
opener.parent.Framename.location.href='datei.htm';
opener.Funktionsname();
opener.Variablenname="Inhalt";
opener.focus();
opener.close();

Erläuterung:

Vor dem jeweiligen Aufruf wird das reservierte Wort opener gesetzt. Die beiden ersten Beispiele laden jeweils eine neue Datei ins öffnende Fenster bzw. in ein Framefenster.
Die folgenden Beispiele rufen im Mutterfenster eine Funktion auf bzw. ändern einen Variableninhalt. Mit opener.focus() wird das Mutterfenster in den Vordergrund geholt und mit opener.close() geschlossen.

Hinweis:

Sie können ein Mutterfenster nur dann ohne Nachfrage des Browsers schließen, wenn dieses ebenfalls von einer Webseite geöffnet wurde und noch keine eigene History besitzt. In allen anderen Fällen erfolgt die Nachfrage, ob das Fenster geschlossen werden soll.

Diese Frage ist nicht zu umgehen, da dies zum internen Sicherheitsmodell der Browser gehört. Der Besucher selbst hat das Recht zu entscheiden, ob er sein Fenster geschlossen haben möchte oder nicht.

nach obennach unten 

Ein Fenster ständig im Vordergrund halten

Basierend auf einem Forums-Beitrag vom 26.05.1999 von:
E-Mail Stefan Muenz, muenz@compuserve.com

Ein Browserfenster wird in den Hintergrund gesetzt, wenn es inaktiv wird. Dieses Verhalten ist insbesondere bei Fernsteuerungen unpraktikabel, da diese erst bei einer ständigen Sichtbarkeit sinnvoll wird.
Ein Fenster wird mit der Methode Seite focus() in den Vordergrund geholt. Durch die wiederholte Anwendung dieser Methode können Sie ein Zusatzfenster ständig im Vordergrund halten.

<html>
<head>
<title>Fenster im Vordergrund</title>
<script language="JavaScript">
<!--

function immervorn()
 {
    self.focus();
    window.setTimeout("immervorn()",1000);
 }

//-->
</script>
<body onload="immervorn()">
...
</body>
</html>

Erläuterung:

Beim Laden der Datei wird die Funktion immervorn() mittels des Event-Handlers Seite onLoad aufgerufen. Diese Funktion setzt mit self.focus() das Fenster in den Vordergrund und ruft sich nach einer Sekunde mittels Seite setTimeout() erneut auf.
Notieren Sie diese Funktion im Kopf der Datei, die im Zusatzfenster geladen wird.

Hinweis:

Der Internet Explorer kennt erst ab der Version 4 die Methode focus().
Das verwendete Verfahren belastet die Systemressourcen des Rechners Ihres Besuchers stark. Durch den ständigen Wechsel des aktiven Fensters wird z.B. ein Ausfüllen von Formularen nahezu unmöglich. Setzen Sie diese Methode deshalb sparsam und zielgerichtet ein.

nach oben
weiter:Weiter Seite Navigationssteuerung bei Frames
zurück:Zurück Seite Event-Handler
 

© 2000 Seite das Redaktionsteam