Homepage de.comp.lang.javascript
Homepage
de.comp.lang.javascript

FAQ de.comp.lang.javascript

FAQ
de.comp.lang.javascript

 

 

Bitte verwenden Sie als Einstiegsadresse in diese FAQ die Homepage der Newsgroup de.comp.lang.javascript. Der Aufenthaltsort dieser Seiten hier kann sich ohne Vorwarnung ändern.
 

 

Kann ich ein Fenster auf dem Bildschirm genau positionieren?

JavaScript 1.2 bietet die Möglichkeit, Fenster auf dem Bildschirm genau zu positionieren:

  1. beim Öffnen des Fensters durch die Parameter screenX=x und screenY=y für NN 4 bzw. left=x und top=y für MSIE ab 4 in window.open()
    (x - Anzahl Pixel von links / y - Anzahl Pixel von oben)
    (Die Erfahrung zeigt, daß NN auch mit left bzw. top zurechtkommt. Diese Parameter sind jedoch nicht dokumentiert, und deswegen ist es wohl besser, auf die dokumentierten zurückzugreifen.)
    Hinweis: Die Beispiele zur Demonstration auf dieser Seite verwenden die Netscape-Syntax.
  2. durch Verschieben an eine bestimmte Bildschirmposition durch die Methode moveTo() des window-Objektes
    windowReference.moveTo(horizontal, vertical)
  3. durch Verschieben um bestimmte Werte durch die Methode moveBy() des window-Objektes windowReference.moveBy(horizontal, vertical)

Die Position eines Fensters wird grundsätzlich von seiner linken oberen Ecke relativ zur linken oberen Ecke des Bildschirms bestimmt.
Recht nützlich für die Berechnung der gewünschten Koordinatenkann können dabei ein paar Eigenschaften des screen-Objekts sein:
screen.width gibt die Breite des gesamten Bildschirms in Pixeln an, screen.height entsprechend die Höhe.
Will man berücksichtigen, daß beim Benutzer vielleicht nicht der gesamte Bildschirm wirklich zur Verfügung steht, sondern eingeschränkt sein kann - z.B. duch die Windows-Taskbar -, dann läßt sich der verbleibende Bereich mit
screen.availWidth und screen.availHeight bestimmen. In diesem Zusammenhang ist dann sicher auch die linke obere Ecke dieses Bereiches interessant. screen.availTop und screen.availLeft sind undokumentierte Eigenschaften, die genau diese Koordinaten liefern.

Beispiel 1:

Die Funktion fenster() öffnet ein neues Fenster an einer bestimmten Stelle des Bildschirms

function fenster(links,oben)
{
   Para = 'width=150,height=150,screenX='+links+',screenY='+oben;
   neues_Fenster = window.open ('', 'fenster',Para);
}

Die Koordinaten werden dazu der Funktion übergeben ("links" bzw. "oben")
Das Fenster soll 100 Pixel vom linken Bildschirmrand und 50 Pixel vom oberen Rand entfernt sein. Dazu kann man z.B. einen Button so definieren:

<input type="Button" onclick="fenster(100,50)" value="Fenster öffnen">

Der hier macht genau das:

Beispiel 2:

Die Funktion verschieben_um() verschiebt ein bereits offenes Fenster um "nach_rechts" und "nach_unten".

function verschieben_um(nach_rechts,nach_unten)
{
   neues_Fenster.moveBy(nach_rechts,nach_unten);
}

Das bereits geöffnte Fenster aus Beipiel 1 verschiebt dieser Button um 80 Pixel nach rechts und 120 Pixel nach unten:

Beispiel 3:

Die Funktion verschieben_nach() verschiebt ein bereits offenes Fenster an eine bestimmte Position, in diesem Fall soll es die linke obere Bildschirmecke sein.

function verschieben nach()
{
   links = 0;
   oben  = 0;
   neues_Fenster.moveTo(links,oben);
}

Zum Ausprobieren bitte wieder das Fenster aus Beispiel 1 öffnen:

Beispiel 4:

Jetzt soll das Fenster genau in die Mitte des Bildschirms wandern. Dazu muß man allerdings erst mal errechnen, wo denn diese Mitte ist. Zur Bestimmung von Breite und Höhe des Bildschirmbereiches steht das screen-Objekt mit den Eigenschaften height und width zur Verfügung. Die "Außenmaße" des neuen Fensters geben seine Eigenschaften outerWidth und outerHeight an. Die Funktion Mitte() kann damit das Fenster aus Beispiel 1 so in die Bildschirmmitte bewegen:

function Mitte()
{
   links = screen.width/2 - neues_Fenster.outerWidth/2;
   oben = screen.height/2 - neues_Fenster.outerHeight/2;
   neues_Fenster.moveTo(links,oben);
}

Zum Ausprobieren auch hier das Fenster aus Beispiel 1 öffnen:

Weil das dauernde Scrollen beim Ausprobieren sicher gestört hat, hier die vier Buttons dicht beieinander.
Wenn das Fenster geöffnet ist, kann es mit den anderen Funktionen nach Belieben verschoben werden.

 

top

Diese Seite ist Teil der de.comp.lang.javascript FAQ. Die Einstiegsadresse lautet http://www.dcljs.de/. Der Text der Seite wurde erstellt von Christine Kühnel (©).

 ______ letzte Änderung: 12/2012 ______ 

 
© S. Mintert, Ch. Kühnel