2009-02-02 13 views
31

Por varias razones absurdas, me gustaría poder detectar el rectángulo de la ventana del navegador en la pantalla. Barra de título y todo.¿Determinando la posición de la ventana del navegador en JavaScript?

¿Es esto posible o está JavaScript limitado al puerto de visualización de su página?

Editar: Puede que no esté claro, pero el puerto de visualización es la parte de la página que está visible en la ventana. Puede que este no sea un término comúnmente utilizado en los navegadores, pero es común en los gráficos.

Respuesta

40

Para los estándares de los navegadores compatibles:

X - window.screenX
Y - window.screenY

para IE:

X - window.screenLeft
Y - window.screenTop

tener en cuenta, implementations vary. Cuidado con configuraciones multi-monitor ...

+4

. Lo intenté hoy, y screenLeft y screenTop funcionan en IE 8, pero screenX y screenY ya no funcionan. Parece que IE finalmente decidió cooperar en este caso. ¿Alguien más tiene los mismos resultados? – trusktr

+0

thnx ... fue muy útil –

+0

Esta no es una buena respuesta. ¿Qué hay de las configuraciones de monitores múltiples? Esto no funciona. –

-4

copia pegada de Google primer resultado:

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

De la misma página: "Para ser capaz de determinar el espacio disponible dentro de la ventana del navegador y la posición actual de esa ventana dentro de la página web actual, necesita copiar el siguiente script y adjuntarlo a la sección principal de su página ". Creo que esto significa viewport. –

+0

comprobado de nuevo, y esto no hace lo que quiero. Cuando mi ventana está en el medio de la pantalla, la alerta (posLeft()) devuelve 0. –

+0

páginaXOffset returns "Devuelve el número de píxeles que el documento ya se ha desplazado horizontalmente". - no el desplazamiento en la pantalla –

8

Tome un vistazo a las siguientes propiedades:

  • window.screen.height: Devuelve la altura de la pantalla en píxeles.
  • window.screen.top: Devuelve la distancia en píxeles desde el lado superior de la pantalla actual.
  • window.screen.width: Devuelve el ancho de la pantalla.
  • window.screen.left: Devuelve la distancia en píxeles desde el lado izquierdo de la pantalla principal hasta el lado izquierdo de la pantalla actual.

(Estos no le dará el tamaño o la posición de la ventana, pero pueden permitirle interpretar correctamente ellos cuando se opera en un sistema con varios monitores)

+1

No funciona en Chrome. –

+1

Chrome tiene window.screenTop y window.screenLeft que parecen ser equivalentes. – Spencer

Cuestiones relacionadas