screen-Objekt

jemand anders

Erfahrenes Mitglied
Hallo,

ich bin bei dem Versuch, ein externes Window auf dem Bildschirm zu platzieren, in meiner Umgebung beim Firefox auf einen Fehler gestoßen.
Das neue Window wird bei mir nicht wie erwartet oben rechts und unten rechts angezeigt, sondern irgendwo oben sehr weit links und unten sehr weit links.

Zum Testen habe ich die screen.availWidth-Test-Anwendung bei w3schools ein wenig verändert.

Der Test zeigt die richtige Breite und Höhe an (1920px/1200px), das Window müsste also in Position 1620px/0px bzw. 1620px/1000px aufgemacht werden, stattdessen erscheint es bei ca. 400px/0px bzw. 400px/900px.
Chrome macht es auch nur fast richtig, denn es wird immer nur innerhalb des Bildschirms ein Window aufgemacht, nicht aber auch ein Window, das über den Bildschirm hinausgeht, d. h. wenn man beispielsweise die Werte 200 und 300 im Beispiel unten - (screen.availWidth - 300)+",top="+(screen.availHeight - 200) - halbiert auf 150 und 100.

Wer weiß, wo der Haken ist?

HTML:
<!DOCTYPE html>
<html>
<body>

<p>Click the button to display the available width of your screen.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = "Available Width: " + screen.availWidth + "px";
    document.getElementById("demo").innerHTML = x;
}

var w = screen.availWidth - 300,
    h = screen.availHeight - 200;

newWindow = window.open("","newWin","toolbar,location=yes,width=300,height=200,left="+w+",top="+h);
newWinDoc = newWindow.document;
newWinDoc.write('screen.availWidth - 300 = '+w+ ' und screen.availHeight - 200 = '+h);

</script>

</body>
</html>
 
ich bin bei dem Versuch, ein externes Window auf dem Bildschirm zu platzieren, in meiner Umgebung beim Firefox auf einen Fehler gestoßen.
Das neue Window wird bei mir nicht wie erwartet oben rechts und unten rechts angezeigt, sondern irgendwo oben sehr weit links und unten sehr weit links.
Da das Original-Script bei mir im Firefox fehlerfrei funktioniert, wird's an Deiner individuellen "Umgebung" liegen, was immer das in puncto Scripting heißen mag.
Chrome macht es auch nur fast richtig, denn es wird immer nur innerhalb des Bildschirms ein Window aufgemacht, nicht aber auch ein Window, das über den Bildschirm hinausgeht, d. h. wenn man beispielsweise die Werte 200 und 300 im Beispiel unten - (screen.availWidth - 300)+",top="+(screen.availHeight - 200) - halbiert auf 150 und 100.

Wer weiß, wo der Haken ist?
Mit Ausnahme vom IE bewegen sich alle übrigen Browser, die ich auf Win7 laufen habe (Chrome, Firefox, Opera), bei der Positionierung eines Popups strikt innerhalb der verfügbaren Bildschirmauflösung.

Überschreitet die Summe von linker/oberer Position und Popup-Breite/-Höhe die Bildschirmgrenzen, setzen sie es zwangsweise so ab, das dessen Viewport am Bildschirm sichtbar bleibt - die angedachte Positionierung wird ignoriert bzw. korrigiert.

Lediglich IE folgt Deinen Anweisungen, das Popup zur Hälfte aus dem Bildschirm zu verbannen.
 
Zurück