Popup auflösungsunabhängig zentrieren

Mit folgendem Skript erscheint Dein Popup immer in der Mitte des Bildschirms – egal, wie groß es ist und wie die beim Besucher eingestellte Bildschirmauflösung ist.

Dieses Skript wurde getestet mit IE 6.0, NN 6.2, NN 4.7 und wurde in allen genannten Browsern korrekt angezeigt. Lediglich der Opera 5.0 hat mit seiner bekannten JavaScript-Schwäche wieder mal Probleme, das Popup korrekt zu positionieren. Neuere Versionen hingegen sollten keine Probleme mehr damit haben; allerdings lassen sich moderne Browser ohnehin so umkonfigurieren, so daß die Angaben ignoriert werden. Auch öffnen einige Browser derartige Popups – wie auch sonst alle angeforderten Popups – im selben Fenster,

Und hier nun der Quelltext des Skriptes:

<script type="text/javascript">
<!--
newwindow=false;
function fenster(url,breite,hoehe) {
  if(newwindow&&newwindow.closed==false)
    newwindow.close()
    var l = (screen.availWidth - breite) / 2;
    var t = (screen.availHeight - hoehe) / 2;
    newwindow = window.open(url,"newwindow","width=" + breite +
                                            ",height=" + hoehe +
                                            ",left=" + l +
                                            ",top=" + t + ";");
  newwindow.focus();
}
//-->
</script>

Wenn die Zentrierung genau in der Bildschirmmitte und nicht in der Mitte des verfügbaren Anzeigebereichs erfolgen soll, solltest Du anstatt screen.availWidth respektive screen.availHeight screen.width und screen.height schreiben. Dadurch wird das Popup genau an den Bildschirmrändern ausgerichtet; eine ggf. vorhandene Taskleiste wird nicht berücksichtigt.

Und der Verweis dazu:

<a href="info.htm" target="_blank" onclick="fenster(this.href,300,300); return false;">Link</a>

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.

Viel Spaß!
Jane & Kurt

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