2009-02-02 11 views
31

Aus verschiedenen dummen Gründen möchte ich in der Lage sein, das Rechteck des Browserfensters auf dem Bildschirm zu erkennen. Titelleiste und alles.Position des Browserfensters in JavaScript bestimmen?

Ist dies möglich, oder ist JavaScript auf den View-Port seiner Seite beschränkt?

Edit: Ich habe vielleicht unklar gewesen, aber Ansicht Port ist der Teil der Seite, die im Fenster sichtbar ist. Dies ist möglicherweise kein gebräuchlicher Ausdruck für Browser, ist aber in Grafiken üblich.

Antwort

40

Für standardkonforme Browser:

X - window.screenX
Y-window.screenY

Für IE:

X-window.screenLeft
Y - window.screenTop

Denken Sie daran, implementations vary. Hüten Sie sich vor Multi-Monitor-Setups ...

+4

Ich habe es gerade heute versucht, und screenLeft und screenTop funktioniert in IE 8, aber screenX und screenY funktioniert nicht mehr. Scheint IE endlich beschlossen, auf diesem einen zu kooperieren. Hat noch jemand die gleichen Ergebnisse? – trusktr

+0

thnx..es war sehr hilfreich –

+0

Dies ist keine gute Antwort. Was ist mit Multi-Monitor-Setups? Das funktioniert nicht. –

-4

Kopie eingefügt von Google Erstes Ergebnis:

// Browser Window Size and Position 
// copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005 
// you may copy these functions but please keep the copyright notice as well 
function pageWidth() 
{ 
return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null; 
} 
function pageHeight() 
{ 
return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null; 
} 
function posLeft() 
{ 
return typeof window.pageXOffset != 'undefined' ? window.pageXOffset :document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0; 
} 
function posTop() 
{ 
return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0; 
} 
function posRight() 
{ 
return posLeft()+pageWidth(); 
} 
function posBottom() 
{ 
return posTop()+pageHeight(); 
} 
+0

Aus der gleichen Seite: „Um in der Lage sein zu bestimmen, der verfügbare Platz innerhalb des Browserfensters und die aktuelle Position dieses Fensters innerhalb der aktuellen Webseite müssen Sie das folgende Skript kopieren und an den Kopfbereich Ihrer Seite anhängen. " Ich denke, das bedeutet Viewport. –

+0

Double überprüft, und das tut nicht was ich will. Wenn sich mein Fenster in der Mitte des Bildschirms befindet, gibt alert (posLeft()) den Wert 0 zurück. –

+0

pageXOffset returns "Gibt die Anzahl der Pixel zurück, um die das Dokument bereits horizontal gescrollt wurde." - nicht der Offset auf dem Bildschirm –

8

Werfen Sie einen Blick auf die folgenden Eigenschaften:

  • window.screen.height: Gibt die Höhe des Bildschirms in Pixeln.
  • window.screen.top: Gibt den Abstand in Pixeln von der oberen Seite des aktuellen Bildschirms zurück.
  • window.screen.width: Gibt die Breite des Bildschirms zurück.
  • window.screen.left: Gibt den Abstand in Pixeln von der linken Seite des Hauptbildschirms zur linken Seite des aktuellen Bildschirms zurück.

(Diese werden Ihnen nicht die Fenstergröße oder Position geben, aber können Ihnen erlauben, sie richtig zu interpretieren, wenn auf einem System mit mehreren Monitoren arbeiten)

+1

Funktioniert nicht in Chrome. –

+1

Chrome hat window.screenTop und window.screenLeft, die scheinbar gleichwertig sind. – Spencer

Verwandte Themen