2009-02-02 17 views
31

Per vari motivi stupidi, mi piacerebbe essere in grado di rilevare il rettangolo della finestra del browser sullo schermo. Barra del titolo e tuttoDeterminazione della posizione della finestra del browser in JavaScript?

E 'possibile, o il codice JavaScript è limitato alla porta di visualizzazione della sua pagina?

Modifica: Forse non sono stato chiaro, ma la porta di visualizzazione è la parte della pagina visibile nella finestra. Questo potrebbe non essere un termine comunemente usato con i browser, ma è comune nella grafica.

risposta

40

Per gli standard browser conformi:

X - window.screenX
Y-window.screenY

Per IE:

X-window.screenLeft
Y - window.screenTop

tenere a mente, implementations vary. Attenzione alle configurazioni multi-monitor ...

+4

Ho appena provato questo oggi, e screenLeft e screenTop funzionano in IE 8, ma screenX e screenY non funzionano più. Sembra che IE abbia finalmente deciso di collaborare a questo. Qualcun altro ha gli stessi risultati? – trusktr

+0

thnx..it è stato molto utile –

+0

Questa non è una buona risposta. Che dire delle configurazioni multi-monitor. Questo non funziona. –

-4

Copia incollato da google primo risultato:

// 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

Dalla stessa pagina: "Per essere in grado di determinare lo spazio disponibile all'interno della finestra del browser e la posizione corrente di quella finestra all'interno della pagina web corrente, è necessario copiare il seguente script e collegarlo alla sezione principale della pagina. " Penso che questo significhi vista. –

+0

Doppio controllo, e questo non fa quello che voglio. Quando la mia finestra si trova al centro dello schermo, alert (posLeft()) restituisce 0. –

+0

pageXOffset restituisce "Restituisce il numero di pixel che il documento è già stato scostato orizzontalmente." - non l'offset sullo schermo –

8

Date un'occhiata ai seguenti proprietà:

(Questi non vi darà la dimensione della finestra o la posizione, ma può consentire di interpretare correttamente loro quando si opera su un sistema con più monitor)

+1

Non funziona in Chrome. –

+1

Chrome ha window.screenTop e window.screenLeft che sembrano equivalenti. – Spencer

Problemi correlati