kann popup script nicht anpassen

ziriander

Erfahrenes Mitglied
Hallo Leute,

Ich habe hier ein Script, dass mir verschiedene Seiten immer wieder im selben Popup öffnet, damit man nachher nicht jede Menge Popups offen hat. Na ja, wie auch immer, es funktioniert und ich bin auch recht zufrieden damit. Aber: die Popups öffnen sich immer oben links in der Ecke. Wie kann ich denn bestimmen wo sich die Dinger den öffnen. In der Mitte oder etwas mehr links oder ganz unten usw.

Hier ist mein Script:

PHP:
var afenster = 0
function ansicht(Seite)
{
 if(afenster!=0&&afenster.closed!=true)
   {
    afenster.focus();
    afenster=window. open(Seite,'Ansicht','scrollbars=no,width=430,height=300,resizable=no');
   }
 else
   {
    afenster=window. open(Seite,'Ansicht','scrollbars=no,width=430,height=300,resizable=no');
   }
}

und der Link sieht so aus:

PHP:
<a href="java script:ansicht('test.htm')">popup</a>

Danke für eure Hilfe
ziriander
 
Du musst die Zeile:
Code:
afenster=window. open(Seite,'Ansicht','scrollbars=no,width=430,height=300,resizable=no');
um die Parameter "top" und "left" erweitern,z.B.
Code:
afenster=window. open(Seite,'Ansicht','scrollbars=no,width=430,height=300,resizable=no,top=200,left=300');
..öffnet das Fenster 200px von oben, und 300px von links.

Wenn es genau in der Mitte sein soll, musst du mit screen.width/screen.height die Auflösung ermitteln,
davon jeweils die Hälfte nehmen, davon wiederum die Hälfte des in der betreffenden Zeile für width/height
angegebenen Wertes abziehen, und das Ergebnis dessen bei left/top einsetzen.
 
merci, das mit top und left ist ja wirklich leicht.
Aber ich habe das mit dem Mittig versucht, was nicht so recht klappt.

PHP:
var afenster = 0
var xsize = screen.width
var ysize = screen.height
var xpos=(xsize-breite)/2
var ypos=(ysize-hoehe)/2
function ansicht(Seite)
{
 if(afenster!=0&&afenster.closed!=true)
   {
    afenster.focus();
	afenster=window.open(Seite,'Ansicht','scrollbars=no,width=430,height=300,resizable=no,resizable=no,screenX="+xpos+",screenY="+ypos+",top="+ypos+",left="+xpos+"');
   }
 else
   {
	afenster=window.open(Seite,'Ansicht','scrollbars=no,width=430,height=300,resizable=no,resizable=no,screenX="+xpos+",screenY="+ypos+",top="+ypos+",left="+xpos+"');
   }
}
 
Du hast dort undefinierte Variablen(breite/hoehe) und ein paar Anführungszeichen zu viel.
So sollte es gehen:
Code:
var afenster;
winW = 430;
winH = 300;
winX =(screen.width/2)-(winW/2);
winY =(screen.height/2)-(winH/2);
function ansicht(Seite)
{
afenster=window.open(Seite,'Ansicht','scrollbars=no,width='+winW+',height='+winH+',resizable=no,left='+winX+',top='+winY);
afenster.focus();
}
die if/else Bedingung hab ich mal rausgelassen(spart Traffic:-))...die ist nicht notwendig, wenn man den focus() nach dem open() übergibt
 
Na ja, was soll ich sagen: Danke :-) schon das mit der if/els Abfrage wars Wert. Da kann ich mir demnächst einiges sparen.

Aber wie es so ist, kaum klappt was kommt man auf neue Ideen. Alle Popups öffnen sich ja noch in der selben Größe. Kann man die so auch in verschiedenen Größen abrufen?
 
Nö... dazu müsste man entweder das Popup erst schliessen, um es dann mit der neuen Grösse wieder zu öffnen....

oder was sinnvoller ist.... man ändert mit der resizeTo()-Methode die Größe des Popup nachträglich.
 

Neue Beiträge

Zurück