Popup mit Variablen öffnen

Um mit einem einzigen Skript mehrere verschiedene Popups zu öffnen, mußt Du nur die Parameter, die die Fenster voneinander unterscheiden, mit dem Link an die Funktion übergeben, sowie jedem Fenster einen eigenen Namen geben. Das wird bei diesem Skript von der Variablen „i“ erledigt. Füge folgenden Code in den head:

<script type="text/javascript">
<!--
fenster=new Array()
function newwin(url,s,w,h,t,l) {
  i=fenster.length
  fenster[i]=window.open(url,"popup"+i,"scrollbars="+s+",width="+w+",height="+h+",top="+t+",left="+l)
  fenster[i].focus();
}
//-->
</script>

Und so sollen die Links im body dazu aussehen:

<a href="pfad/seite,die_aufgerufen_werden_soll.htm" target="_blank"
  onclick="newwin(this.href,0,120,120,50,50); return false;">Link1</a>
<a href="pfad/seite,die_aufgerufen_werden_soll.htm" target="_blank"
  onclick="newwin(this.href,1,170,210,80,150); return false;">Link2</a>

Mit dieser Schreibweise der Verweise erreichst Du, daß sie auch noch funktionieren, wenn JS deaktiviert ist. Außerdem wird dadurch in der Statuszeile der korrekte Pfad zur Seite angezeigt. Mit der ersten Ziffer gibst Du an, ob Scrollbalken vorhanden sein sollen [1], oder nicht [0], die zweite Ziffer gibt die Fensterbreite an, die dritte die Fensterhöhe, die vierte wiederum die Position der linken oberen Fensterecke von oben und schließlich die fünfte Ziffer die Position der linken oberen Fensterecke von links.

Mit diesem Skript kannst Du mit einer Funktion beliebig viele Fenster öffnen, sofern Du die richtigen Parameter mit dem Link übergibst.

PS: Die Anweisung copyhistory=0 verhindert ein Cachen der aufgerufenen Ressource. Du kannst sämtliche Attribute nach belieben ändern. Außerdem wurde der Parameter scrollbars hinzugefügt, wodurch Du nun frei (mit 0 oder 1 als Eingabe) bestimmen kannst, ob das Fenster Scrollbalken haben soll oder nicht.

Wenn Du dieses Skript in den Quelltext einfügst, solltest Du die Zeilenumbrüche innerhalb des Anweisungsblocks vermeiden, da es sonst zu einem Skriptfehler kommt, weil das Skript die weiteren Parameter nicht mehr findet.

Optionale Parameter

Um bestimmte Fensterelemente oder -eigenschaften doch nicht auszuschalten, kannst Du folgende optionale Parameter mit in die Funktion schreiben: scrollbars, toolbar, location, directories, status, menubar, resizable, copyhistory.

Siehe dazu auch die weiteren Hinweise zur Browserunterstützung und Sicherheit.

Automatisches Schließen

Um zu erreichen, daß das Fenster sich automatisch schließt, wenn es inaktiv wird, sprich, in den Hintergrund rutscht, fügst Du in den body der Seite, die im Popup aufgerufen wird, folgendes ein:

<body onblur="self.close();">

Diese Anweisung hat zur Folge, daß, sobald das Fenster den Focus verliert, dieses geschlossen wird. Aber Achtung: Dies ist auch dann der Fall, wenn Du in das Fenster hinenklickst. Durch diese Anweisung wird es unmöglich, in dem Fenster irgendeine Aktion auszuführen, da es sich dann sofort schließt. Es eignet sich somit nur, wenn Du lediglich Bilder oder Inhalte anzeigen möchtest, die keinerlei Interaktion erfordern.

Anmerkung

Das hier vorgestellte Skript wurde aufgrund eines Tips von Wolfgang Schwartz verbessert und funktioniert nun auch in Netscape 4.x wie gewünscht.

Viel Spaß!
Jane & Kurt

Angelegt: Vor meiner Zeit
Letzte Bearbeitung: 2005/06/11 / 14:11:00