Foros del Web » Programando para Internet » Javascript »

outerWidth pero para IE o ¿Como saber el tamaño de la ventana de navegador?

Estas en el tema de outerWidth pero para IE o ¿Como saber el tamaño de la ventana de navegador? en el foro de Javascript en Foros del Web. Hola: Explico lo que necesito que no es facil de encontar en google (espero que se pueda en IE) tengo que encontrar el valor del ...
  #1 (permalink)  
Antiguo 06/10/2006, 20:28
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 6 meses
Puntos: 4
outerWidth pero para IE o ¿Como saber el tamaño de la ventana de navegador?

Hola:

Explico lo que necesito que no es facil de encontar en google (espero que se pueda en IE) tengo que encontrar el valor del ancho y el alto de la ventana de explorador no de la parte interna sino incluyendo margen, toolbar, stats bar, favoritos, etc. En Firefox esto se hace con window.outerHeight pero estoy buscando la propiedad para hacerlo con IE6, buscando mas sobre el tema tambien encontre varias ecepciones

http://www.howtocreate.co.uk/tutoria.../browserwindow

sin embargo, primero quiero que funcione con IE6 y FF1.5.x

Les dejo el codigo de test que ocupo hasta el momento, esta casi completo solo falta detectar el outer en IE


Código HTML:
<script type="text/javascript">
function f1()
{
alert('maximo height='+screen.availHeight+'\nmaximo width='+screen.availWidth+'\nOuter height='+window.outerHeight+'\nOuter Width='+window.outerWidth+'\ninner height='+window.innerHeight+'\ninner Width='+window.innerWidth+'\nResolucion de pantalla height='+screen.height+'\nResolucion de pantalla width='+screen.width);
}

function f2()
{
alert('maximo height='+screen.availHeight+'\nmaximo width='+screen.availWidth+'\nOuter height='+window.outerHeight+'\nOuter Width='+window.outerWidth+'\ninner height='+document.body.clientHeight+'\ninner Width='+document.body.clientWidth+'\nResolucion de pantalla height='+screen.height+'\nResolucion de pantalla width='+screen.width);
}
</script> 
<p id="text" onclick="f1()">Funciona con Firefox</p>
<p onclick="f2()">Casi con IExplorer</p> 
El por que necesito este dato es por que tengo que calcular el tamaño maximo permitido por el navegador para ajustar la ventana y mostar el contenido apropiado para cada tamaño, es dificil de explicar, pero obviamente necesito el outer para hacer la programación de esto.

La otra posibilidad que he pensado es agrandar la ventana al tamaño maximo por milesimas de segundo y hacer el calculo, pero el cliente es obsesivo en cuanto a la perfección.

Tambien pienso que quizas podrian existir los tamaños de los toolbar, favoritos historial y así hacer el calculo, pero esto lo dejare como segunda posibilidad en caso de que no exista el outer para IE

Gracias por leer
Muchas gracias por responder
:)

Saludos
  #2 (permalink)  
Antiguo 07/10/2006, 16:55
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Buenas noches Remsankar

La necesidad que tienes no es tan rara.. la obtención del tamaño máximo para una ventana se usa bastante para abrir ventanas a pantalla completa (y en este caso si que necesitas el tamaño TOTAL de ventana que usa el navegante).

La forma que yo conozco y uso es usando el objeto screen

Dicho objeto represeta el área TOTAL de la ventana del cliente, el cual si tiene su escritorio configurado a 1024x768, el objeto screen, (en su función correspondiente) te devuelve que el ancho son 1024 y el alto son 768.

Para obtener el alto y el ancho debes de usar:
Código PHP:
screen.availWidth
screen
.availHeight 
Espero que te sea útil.

Un saludo.

  #3 (permalink)  
Antiguo 10/10/2006, 10:06
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 6 meses
Puntos: 4
Gracias por responder pero lo que necesito es el tamaño real de la ventana del explorador, no del tamaño del escritorio, eso ya lo tengo

lo dejo de otra forma para que quede mas claro

necesito los datos "?" para IE6



Código:
	                                        
                                                   Firefox 1.5x	          Iexplorer 6x
Tamaño del escritorio (sin taksbar)	screen.availHeight	screen.availHeight
Tamaño del escritorio (sin taksbar)	screen.availWidth	screen.availWidth
Tamaño de la ventana de navegación (incluido toolbar, statusbar, favoritos, etc)	window.outerHeight	?
Tamaño de la ventana de navegación (incluido toolbar, statusbar, favoritos, etc)	window.outerWidth	?
Tamaño del interior de la ventana de navegación (sin toolbar…, etc)	window.innerHeight	document.body.clientHeight
Tamaño del interior de la ventana de navegación (sin toolbar…, etc)	window.innerWidth	document.body.clientWidth
Resolucion de pantalla	screen.height	screen.height
Resolucion de pantalla	screen.width	screen.width

Última edición por Remsankar; 10/10/2006 a las 10:22
  #4 (permalink)  
Antiguo 11/10/2006, 11:20
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 6 meses
Puntos: 4
Luego de darme cuenta que no es posible encontrar ese parametro por las buenas en iexplorer, por que el valor no existe.

opte por hacerlo de esta manera

Código HTML:
<html>
<head>
<title></title>
<script language="JavaScript">

var ieDiffWidth;
var ieDiffHeight;

function init() {

  var w, h, offW, offH, diffW, diffH;
  var fixedW = 800;
  var fixedH = 600;

  if (document.all) {
    offW = document.body.offsetWidth;
    offH = document.body.offsetHeight;
    window.resizeTo(fixedW, fixedH);
    diffW = document.body.offsetWidth  - offW;
    diffH = document.body.offsetHeight - offH;
    w = fixedW - diffW;
    h = fixedH - diffH;
    ieDiffWidth  = w - offW;
    ieDiffHeight = h - offH;
    window.resizeTo(w, h);
  }
}

function outerWd() {

  if (document.all)
    return document.body.offsetWidth  + ieDiffWidth;
  else
    return window.outerWidth;
}

function outerHt() {

  if (document.all)
    return document.body.offsetHeight  + ieDiffHeight;
  else
    return window.outerHeight;
}

</script>
</head>
<body onload="init()">

<a href="#" onclick="alert(outerWd() + 'x' + outerHt()); return 
false;">Tamaño de la ventana de navegación</a>

</body>
</html> 
Quizas con vbscript se pueda, igual voy a buscar un poco mas

Saludos y gracias
  #5 (permalink)  
Antiguo 11/10/2006, 18:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Me parece que no hay forma de saberlo con explorer... en más de una ocasión revisé los atributos de los objetos donde pueden conseguirse esos parámetros y nunca encontré nada.

Sobre el método que usas, me parece que no te va a dar resultados fiables. Cuando se abre una ventana con sus dimensiones establecidas (con window.open) creo recordar que devuelve un tamaño distinto al que consigue con resizeTo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 11/10/2006, 18:55
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 6 meses
Puntos: 4
Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Me parece que no hay forma de saberlo con explorer... en más de una ocasión revisé los atributos de los objetos donde pueden conseguirse esos parámetros y nunca encontré nada.

Sobre el método que usas, me parece que no te va a dar resultados fiables. Cuando se abre una ventana con sus dimensiones establecidas (con window.open) creo recordar que devuelve un tamaño distinto al que consigue con resizeTo.

Saludos
Gracias por responder

He visto que hay una diferencia de entre 8 px + o - creo que tiene que ver con los bordes de la ventana, de todas maneras en un par de dias examinare con screenshot los resultados del script terminado, por que creo que a lo mas encontraré alguna ecepción cuando la ventana esta cerca del tamaño del escritorio.
  #7 (permalink)  
Antiguo 11/10/2006, 19:03
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Pueden ser 8 los pixeles horizontales (4 de cada lado +/-) pero los verticales pueden variar, ya que las ventanas con window xp tienen un formato distinto a las de versiones anteriores de window.

Por cierto, la página en donde reviso los atributos de los objetos es la del Destripador Web

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:53.