JavaScript Open Methode

Mit der Methode open des Window-Objekts ist es möglich ein weiteres Browserfenster zu öffnen. Sie liefert einen Verweis auf die damit erzeugte Window-Instanz zurück, über den auf das geöffnete Fenster zugegriffen werden kann. Auf diese Weise läßt sich zum Beispiel die Darstellung von Informationen mit einer Master-Detail-Struktur realisieren.

Als Parameter müssen zumindest die URI der im geöffneten Browserfenster darzustellenden Datei, sowie der Fenstername, unter dem das Fenster ansprechbar sein soll, angegeben werden. Steht beim Öffnen des Fensters noch keine darzustellende Datei fest, so sollte – um Probleme mit alten Browsern zu vermeiden – „about:blank” angegeben werden, womit eine leere Datei geladen wird. Für die URI gelten die üblichen Adressierungsformen über die Angabe von relativen und absoluten Pfaden. Die Vergabe eines Fensternamen ist dann sinnvoll, wenn Verweisziele im geöffneten Fenster dargestellt werden sollen. Dies geschieht dann über die target-Eigenschaft des HTML A-Tags, wo der Name des Fensters angegeben wird, in dem das Verweisziel geöffnet werden soll.

Der optionale dritte Parameter dient der Konfiguration des Fensters. In einem String wird das Aussehen des Browserfensters festgelegt, wobei die einzelnen Optionen durch Kommata getrennt werden müssen. Hier können unter anderem Höhe, Breite und Position des zu öffnenden Fensters (neue Instanz des Browsers) angegeben werden. Auch ist hier das Ein- bzw. Ausblenden von Browserelementen (Adresszeile, Menüleiste, Status- und Toolbar) möglich.

Die oft verpönten, da sehr häufig als Träger von Werbeinformationen genutzten, sogenannten PopUp-Fenster lassen sich durch Aufruf der open-Methode öffnen. Viele Browser unterbinden das Öffnen von PopUps durch Verwendung von PopUp-Blockern um die auf manchen Seiten übertriebene Penetration durch diese HTML-Fenster zu verhindern.

JavaScript Open Beispiel: Öffnen eines Browserfensters

Das folgende Beispiel zeigt, wie ein Fenster mit Hilfe von JavaScript geöffnet werden kann. Durch Betätigung eines Links wird, soweit dies nicht schon zuvor geschehen ist, ein neues Browserfenster geöffnet und ein bestimmtes Bild im diesem Fenster dargestellt. Ein weiterer Link initiiert das Schliessen eines zuvor durch das Script geöffneten Fensters. In der Window.open Demo können Sie das Script ausprobieren. Ein weiteres Beispiel, in dem dem JavaScript window.open zur Anwendung kommt, finden Sie in der Window.close Demo.

Im unten stehenden Script wird zunächst eine Variable definiert, welche den Zugriff auf die später zu erzeugende Window-Instanz ermöglichen soll. Dann folgt die Definition der Funktion bildOeffnen, die bei Bedarf ein neues Fenster öffnet und ein Bild mit der übergebenen URI in diesem Fenster öffnet. Die Funktion prüft zunächst, ob bereits ein Fenster geöffnet und bislang auch nicht geschlossen wurde. Der erste Teil der Abfrage prüft, ob in der Variable fenster noch keine Instanz des Window-Objekts gespeichert ist, was bedeutet, dass zuvor noch kein Fenster geöffnet wurde. Mit der Window-Eigenschaft closed wird dann überprüft, ob das Fenster zwischenzeitlich geschlossen wurde. Trifft keine dieser Bedingungen zu, so wird mit der Methode Window.open ein neues Fenster mit der übergebenen URI geöffnet und ein Verweis auf die damit erzeugte Window-Instanz in der Variable fenster gespeichert. Anderenfalls wird die übergebene URI im bereits geöffneten Fenster geöffnet. Dies geschieht durch Zuweisung der entsprechenden URI an das Window-Unterobjekt location, in dem die URI der im Fenster dargestellten Zieldatei steht. Durch diese Zuweisung wird automatisch das Laden der Zieldatei ausgelöst.

Die Aufgabe der zweiten Funktion ist es, ein bereits durch den JavaScript-Code geöffnetes Browserfenster wieder zu schliessen. Dazu wird geprüft, ob fester eine Instanz des Window-Objekts enthält und das Fenster noch geöffnet ist. Ist dies der Fall, so wird das Fenster mit Hilfe der Window-Methode close() geschlossen.

Der darunter liegende HTML-Abschnitt enthält die Links zur Steuerung des Scripts. Die ersten beiden Links führen, nachdem der Benutzer diese angeklickt hat, die Funktion bildOeffnen mit den darzustellenden Bild-URIs als Parameter aus. Durch Anklicken des letzten Links wird die Funktion fensterSchliessen ausgeführt.

<script language="javascript" type="text/javascript">
<!-- // JavaScript-Bereich für ältere Browser auskommentieren
// Variable zur Speicherung des Fenster-Objekts
var fenster;

// Funktion zum Öffnen eines Fensters mit einem übergebenen Bild
function bildOeffnen (url) {
  // Wurde das Fenster schon geöffnet und bisher nicht geschlossen?
  if (!(fenster instanceof Window) ¦¦ fenster.closed)
    // Fenster nicht geöffnet -> Fenster mit Bild Öffnen
    fenster = window.open (url, 'Leinwand', 'top=100,left=330,height=400,width=590');
  else
    // Bild in bereits geöffnetem Fenster laden
    fenster.location = url;
}

// Funktion zum Schliessen eines zuvor geöffneten Fensters
function fensterSchliessen () {
  // Wurde bereits ein Fenster geöffnet, das noch nicht geschlossen wurde?
  if (fenster instanceof Window && !fenster.closed)
    // Fenster schliessen
    fenster.close ();
}
// -->
</script>
<a href="javascript:bildOeffnen ('/javascript-demos/java-script-galerie/photos/boot.jpg')">Boot anzeigen</a>
<a href="javascript:bildOeffnen ('/javascript-demos/java-script-galerie/photos/tor.jpg')">Tor anzeigen</a>
<a href="javascript:fensterSchliessen ()">Fenster schliessen</a>
Letzte Posts aus unserem Forum

Probleme mit iphone

Hallo, ich habe ein Problem bei der Darstellung einer Webseite. In allen Browsern hat das bisher bestens funktioniert außer beim iPhone und iPad, wo ... » mehr

von Finlay am Dienstag, 10. Juli 2012 19:45 in JavaScript - noch nicht beantwortet

Stream musik

Hallo, ich bin auf der Suche nach einem Script, mit dem ich einen Leser für Audio-Spuren in eine Html-Webseite einfügen kann. Ich brauche dabei ... » mehr

von Finlay am Sonntag, 22. Januar 2012 22:52 in JavaScript - bisher 2 Antworten
Letzter Beitrag: Dienstag, 8. Mai 2012 16:04 von maharadja

ich habe das mal mit jplayer probiert und bei mir gings ... » mehr

Byte Array PDF im Browser anzeigen

Hallo, ich bekomme von einem Webservice ein PDF als Byte Array. Mit einem JsonP Request habe ich das Byte Array so wie es ist (als Array von Bytes) ... » mehr

von TiloS am Mittwoch, 11. April 2012 17:37 in JavaScript - noch nicht beantwortet

Überbelnd effect in javascript gallerie

ich habe hier einie gallerie die funktioniert problem los aber hat noch kein über belnd effect jedoch würde ich diesen gerne einfügen aber ich habe ... » mehr

von faebe am Freitag, 20. Januar 2012 20:19 in JavaScript - noch nicht beantwortet

XML per JavaScript verarbeiten - IE

Hallo! Vielen Dank für das super kommentierte Script-Beispiel zur Weiterverarbeitung von XML-Dateien per JavaScript: ... » mehr

von gn0me am Freitag, 11. März 2011 19:03 in JavaScript - noch nicht beantwortet


¬ Insolvenzrecht