Sebastian Becker: window.screenLeft und Seitenleiste

Hallo,

ich möchte die Position eines PopUps relativ zum öffnenden Fenster festlegen und lese daher beim Internet Explorer die Position mit window.screenLeft aus. Dabei wird aber offenbar nicht das gesamte Fenster als Grundlage genommen, sondern das Fenster ohne die (nicht immer geöffnete) Favoriten-/Verlaufs-Seitenleiste. Wie kann ich die Position des gesamten Fensters bestimmen?

Vielen Dank für alle Hinweise,
Grüße,

Sebastian

  1. Hallo,

    ich möchte die Position eines PopUps relativ zum öffnenden Fenster festlegen und lese daher beim Internet Explorer die Position mit window.screenLeft aus. Dabei wird aber offenbar nicht das gesamte Fenster als Grundlage genommen, sondern das Fenster ohne die (nicht immer geöffnete) Favoriten-/Verlaufs-Seitenleiste. Wie kann ich die Position des gesamten Fensters bestimmen?

    Der Bezugspunkt fuer window.screenLeft bzw. window.screenTop ist die linke obere Ecke der Anzeigeflaeche (aka Canvas), also auch der (0,0)-Punkt fuer position: absolute; im BODY.
    An die exakten Koordinaten der linken oberen IE-Fensterecke kommt man AFAIK nicht ran.

    MfG, Thomas

    1. Hallo, Thomas,

      An die exakten Koordinaten der linken oberen IE-Fensterecke kommt man AFAIK nicht ran.

      Danke für den Hinweis. Das ist ja ärgerlich, wo man doch sonst fast alles auslesen kann ...

      Grüße,

      Sebastian

  2. Hi Sebastian,
    so wie bei den äusseren Dimensionen des Fensters gibt es auch für die Position des Fensters einen Trick um an die Werte zu kommen, allerdings wird den niemand einsetzen, weil er ein "Zucken" des Fensters zur Folge hat:

    1. berechne die Positon des Dokuments:
         docLeft=window.screenLeft;docTop=window.screenTop;

    2. verschiebe das Fenster zum Nullpunkt
         window.moveTo(0,0);

    3. wenn Du nun wieder die Position des Dokuments berechnest, weisst Du wie weit sich das Fenster verschoben hast, und kannst es wieder an seine ursprüngliche Position zurückschicken:

    x = docLeft-window.screenLeft;y = docTop-window.screenTop;
    window.moveTo(x,y);

    That's it, denn x und y sind die gewünschten Werte.
    LG Spiff

    1. Hi Spaceman Spiff,

      allerdings wird den [Trick] niemand einsetzen, weil er ein "Zucken" des Fensters zur Folge hat

      du nimmst meine Vermutung vorweg. Trotzdem vielen Dank ...

      Grüße,

      Sebastian