eigentlich is es ganz einfach:
top.POP_UP = new Array();
ein globales Array, du kannst es auch window.POP_UP nennen, das alle Fenstereferenzen sammelt.
window.onunload = close_all;
der onunload event (kann man auch so schreiben <body onunload="close_All();">)
wird mit der Funktion close_all aufgerufen (ohne Klammern, ist es eine Referenz auf die Funktion: alert(typeof close_all);)
function popup(url, name, param)
Diese Funktion öffnet dein popUP es hat die gleichen Parameter, wie window.open()
{
if(!param) param = "";
Zur Sicherheit, damit param nicht undefiniert ist, kan aber wahrschienlich weggelassen werden.
if(!name) name = 'X' + Math.random();
Das Fenster braucht einen Namen .
var win = window.open(url, name, param);
hier wird dann das Fenster geöffnet.
top.POP_UP[win.name] = win;
und in das Array gesteckt.
return top.POP_UP[win.name];
Die funktion gibt, wioe window.open eine Referenz auf das Fenster zurück.
}
function close_all()
Duie funktion die beim onunload aufgerufen wird.
{
// Alle popups schliessen
for(var win in top.POP_UP) if(top.POP_UP[win].close && !top.POP_UP[win].closed) top.POP_UP[win].close();
gehe durch alle Elemente des Arrays POP_UP (sind Fensterreferenzen) und wenn diese nicht geschlossen wurde, Fenster schliessen.
}
popup('about:blank', 'F1');
popup('about:blank', 'F2');
Hier werden Testhalber 2 Fenster geöffnet, die beim verlassen der Seite wieder geschlossen werden.
wie kann ich die beiden pop-ups aufrufen (name?)
so wie du vorher window.open verwendet hast.
Struppi.