Detección de tamaño con javascript

De un tiempo a esta parte, el retorno de screen.width / screen. AvailWidth ... No me retorna el valor exacto del ancho de la pantalla (lo he probado con window y tampoco). Tengo una resolución de 1366x768 pero al utilizar esas funciones ahora, me retorna 1252 ¿? ¿Cómo es eso? ¿Qué pasa?, con la altura pasa lo mismo, con height me retorna 704 y con availHeight me retorna 667.

Lo que estoy seguro es que antes retornaba los valores correctos, por cierto, estoy utilizando el Firefox 29.0.1

2 Respuestas

Respuesta
1

Hay elementos del propio navegador que bloquean ciertas partes del espacio disponible, por ejemplo las barras complementos o el historial en el lateral, hacen que el availwidth sea menor.

Creo, aunque no lo se con seguridad, que el height te devuelve la altura no de la ventana del navegador, sino del espacio pintable por así decirlo. Entonces height te estará devolviendo tu resolución menos la parte de arriba del navegador todos sus botones, barras, etc, o quizás las por defecto, mientras que availheight te devuelve quizás menos por haber alguna barra no nativa o ocupando espacio invisiblemente, ¿tipo malware dealgun tipo? Haz la prueba en otro navegador y compara el resultado te ayudará a determinar el problema

Yo investigaría esto, quizás vayan por ahí los tiros

Suerte!

(mas info en: http://stackoverflow.com/questions/5456582/screen-width-and-screen-availwidth-difference-in-javascript )

Esto es lo que pude comprobar el otro día: .... el que funciona mal es Firefox, acabo de probar con Google Chrome y con Explorer y con "window.innerWidth" me retorna 1366, que es lo correcto, con Firefox, me retorna 1252 ...

Deduzco que el problema lo tiene Firefox, al menos en la versión que tengo instalada en este momento

Ahora puedo hacer pruebas y por lo que veo screen. Availwidth me retorna el ancho de mi monitor, que es 1366, y el window. Innerwidth el ancho de la ventana (no maximizada puedo ver que son diferentes). Por lo que tienes tu razón algo extraño hay ahí.

Prueba a iniciar el firefox de incógnito y medir de nuevo, por descartar complementos.

Y si que decirte que mi version de firefox es la 34.0.5 por lo que es posible que tengas que actualizar tu navegador, y puede que venga la corrección ahí. ¿Hay algún motivo por el que no puedas actualizar?

usa window. Screen. ¿Width te devuelve mal también? Supongo que si... Es extraño no consigo encontrar mucha información sobre esto, suponiendo claro que estas ejecutándolo en la consola de javascript sin ningún programa javascript cargado previamente...

Me interesa el tema dime tus avances :D

window.screen.width

El corrector ortográfico...

He hecho dos pruebas:

una la que me decías tú: abrir el navegador con pestaña anónima / privada, el resultado sigue siendo el mismo screen.width a 1252 en vez de 1366

La segunda prueba: tengo máquinas virtuales con windows XP, y un navegador firefox antiguo (versión 18), ejecuto el script y me retorna .... 1366 ... o sea que es un problema de la versión del firefox que tengo yo instalado, a menos que tu me digas que para la versión 34, al ejecutar screen.width, da 1252 en vez de 1366, por lo que entonces sería mas grave para la gente de firefox.

Dime que resultado da en tu navegador.

El porqué no actualizo continuamente a las últimas versiones, es porque siempre tendría que estar actualizando, solo lo hago cuando requiero una mejora importante, y porque a veces probar las cosas en versiones "antiguas" va bien ... no todo el mundo ha de tener las ultimas versiones.

A mi me devuelve correctamente, el ancho de la resolución que tengo, lo que tu esperas que te debía devolver.

Es entonces problema de la versión tuya, pero no estoy de acuerdo contigo en mantener versiones obsoletas pues aunque pueda ser verdad y para probar pueda venir bien, y así testeas en el navegador como un usuario desactualizado, la realidad es que las actualizaciones corrigen muchos problemas de seguridad que a mi personalmente no me gusta tener en mi equipo, y la situación para mi no es equivalente a tener un explorer 6 o 7 para el mismo fin, ya que no hay esas diferencias abismales entre versiones (aunque como estamos viendo, si que hay diferencias y problemas sin corregir). Al menos se consciente de esto.

https://www.mozilla.org/es-ES/security/known-vulnerabilities/firefox/ 

Además los funcionamientos siguen siendo optimizados, el webGL funciona mucho mejor en mi firefox que en mi iceweasel en linux, y como eso todo supongo. Ellos están haciendo un trabajo constante para que su navegador este a la ultima en la tecnología usada y con ejecuciones más optimas, mi opinión es estar siempre actualizado.

Por cierto el firefox mio se actualiza solo, será que tienes esa opción desmarcarda no lo se, porque a mi siempre se actualizó solo igual que chrome, pero si que es cierto que estoy usando windows 7 y para el linux no me actualiza solo el iceweasel (clon firefox) sino que le tengo que dar a actualizar.

¿Entonces tu problema acaba aquí no? Comprueba en las listas de bugs de tu version de firefox si hablan algo con respecto al problema que estás teniendo, puede que hasta estuviera reportado. Al menos no tienes malwares de navegador ocultos, que era mi preocupación inicial

Bueno, pues entonces actualizaré el navegador ... 

La opción de actualización automática la tengo deshabilitada en todo, ya que hay veces que las actualizaciones no siempre van bien ... lo que no entiendo es que esto haya pasado, retornar un dato mal ... No sé si está reportado o no, me da igual, lo cierto es que por mucho que esten trabajando y actualizando continuamente, tocan cosas que no deberian, como por ejemplo, el caso que nos ha ocupado, una cosa es que funcionalidades nuevas no terminen de funcionar, pero las antiguas, las de base, esas no se deben tocar ...

Doy por finalizado el tema.

Saludos y gracias

Estoy de acuerdo contigo en eso, algo que ya funciona no debe no funcionar en una version superior.

Aun así quiero creer que las actualizaciones vienen a mejorar

Respuesta

¿Hola algoran lo que buscas es esto? ... Pruébalo acá: www.htmledit.squarefree.com

<!-- www.nikolodj.es.tl | +569-85883399 | curico-chile --><style media="screen" type="text/css">html, body {    height:100%;    margin:0;}body {    position:relative;    min-width:900px;    min-height:530px;}#contNkLDj {    position:absolute;    background-color:transparent;    width:930px;    height:530px;    top:50%;    left:50%;    margin-top:-255px;    margin-left:-465px;}</style><!--[if lte IE 6.0]><style>#contNkLDj {    top:expression(document.body.clientHeight < 501? "0px": "50%" );    margin-top:expression(document.body.clientHeight < 501? "0px": "-250px" );    left:expression(document.body.clientWidth < 701? "0px": "50%" );    margin-left:expression(document.body.clientWidth < 701? "0px": "-350px" );</style><![endif]--><div id="contNkLDj"><iframe width="930" height="530" name="about" src="http://webmaster-nkldj.webcindario.com/nikolodj/nikolodjwebprincipalnikolodjcurico-chile.html" marginheight="1" marginwidth="1"  frameborder=0 scrolling="0" ALLOWTRANSPARENCY="true" style="position:absolute; left:0px; top:0px"></iframe></div><!-- www.nikolodj.es.tl | +569-85883399 | curico-chile -->
La pregunta no admite más respuestas

Más respuestas relacionadas