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