2012-08-10 5 views
5

He realizado un script en el que estoy detectando el navegador móvil y cuando es verdadero, se llama a la función JS getwidth y redirige al visitante a una determinada URL en la base del ancho de pantalla de su dispositivo. I utilizó el método js básico de detección es decir screen.width para detectar ancho de la pantallaAncho de pantalla Problema al usar diferentes navegadores en Handheld/Dispositivos inteligentes

El problema estoy frente es que diferente ancho de la pantalla se está volviendo en diferente browsers.Like I tiene una tableta (Android 4.0.3) cuya real pantalla ancho es 800 PX y cuando ejecuto mi script en él con el navegador predeterminado, devuelve un ancho de pantalla preciso 800px, pero cuando lo abro con diferentes navegadores devuelven diferentes anchos, como UC Browser devuelve 740 PX (ISSUE 2: also when onload function i tried to return screen width on UC browser then it returns screen width as 0px and after page load when i call the same function again then it returns width=740px), cuando ejecuto el script en Opera Mini, entonces devuelve el ancho como 441 PX.

Amablemente déjenme saber cuál es la forma más eficiente de detectar el ancho de pantalla de Hand Held/Smart Devices. Así que puedo hacer la redirección perfectamente sobre la base del ancho de la pantalla.

URL para PRUEBA: http://radiations3.aiksite.com/home.html

Gracias,

Respuesta

8

Hmm, me suena como usted no debería usar Javascript, sino más bien utilizar CSS. ¿Has mirado en media queries? Esta es la forma más cruzada de navegador para detectar el ancho de una pantalla y luego ofrecer un estilo diferente en consecuencia.

Si usted no está buscando para cambiar estilos, pero redirigir como usted dice (si es necesario), a continuación, me gustaría sugerir el siguiente código (en nombre de Andy Langton):

var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],x=w.innerWidth||e.clientWidth||g.clientWidth,y=w.innerHeight||e.clientHeight||g.clientHeight; 

Este es el taquigrafía que creará dos variables, x y y, que son ancho y alto, respectivamente. Tal vez esto se parece más a lo que está buscando, pero primero sugiero verificar las consultas de los medios y asegurarse de que lo que está buscando hacer no se pueda hacer con CSS. No hay garantía de que Javascript esté habilitado en ningún navegador.

+1

+1 para consultas sobre medios Muchos dispositivos móviles no usan JavaScript (o lo han desactivado de manera predeterminada). Con la cantidad de variaciones de dispositivos que existen en la actualidad, la mayoría de los desarrolladores ahora consideran que es una mala práctica intentar atender plataformas específicas con el rastreo de JS. Podría haber 100 tamaños de pantalla, ¿quién sabe? En lugar de eso, intente investigar un "diseño web receptivo" si está interesado en cómo lograr un sitio compatible con dispositivos móviles sin JavaScript (o al menos no depende de que JavaScript esté habilitado). La idea es ajustar su página usando consultas de medios CSS para adaptarse a cualquier tamaño de pantalla. – BenSwayne

+0

@soft genic: ¿Respondió esto a tu pregunta? – cereallarceny

+0

@cereallarceny Utilicé la consulta de medios y también están obteniendo el mismo tamaño de pantalla que está siendo devuelto por javascripting, ya que dependía del tamaño del navegador y no del tamaño real de la pantalla. –

1

has necesitado que el uso de jQuery y

$(window).width(); 
$(window).height(); 

nunca tuvo algún problema al utilizar estos.

Cuestiones relacionadas