Hola, estoy intentando detectar la resolución de pantalla para detectar el tipo de dispositivo del cleinte, lo normal sería hacerlo con
screen.width PERO como no tengo un smartphone y trabajo con un emulador de iPhone, screen.width me da el tamaño de la pantalla del ordenador, entonces intento detectar el ancho de la ventana (o del documento) con esta función:
Código Javascript
:
Ver original//Obtiene las dimensiones de la pantalla (de momento, solo el ancho)
function getViewSize()
{
var viewportwidth;
var viewportheight;
// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
if (typeof window.innerWidth != 'undefined')
{
//viewportwidth = window.innerWidth;
viewportwidth = window.innerWidth;
viewportheight = window.innerHeight;
alert('1 ' + viewportwidth);
}
// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
else if (typeof document.documentElement != 'undefined'
&& typeof document.documentElement.clientWidth !=
'undefined' && document.documentElement.clientWidth != 0)
{
viewportwidth = document.documentElement.clientWidth;
viewportheight = document.documentElement.clientHeight
alert('2 ' + viewportwidth);
}
// older versions of IE
else
{
viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
viewportheight = document.getElementsByTagName('body')[0].clientHeight
alert('3 ' + viewportwidth);
}
return viewportwidth;
}
Pues la función funciona bien para todos los navegadores y CASI todas las resoluciones, porque para firefox, a tamaños grandes da el tamaño correcto, pero por ejemplo para una ventana de 480px de ancho (exactos) da un valor de 560px, en realidad el menor valor que llega a mostrar es 560px, aunque encoja la ventana a valores inferiores siempre da ese. ¿¿Alguien sabe como solucionarlo??
Para redimensionar la ventana utilizo el plugin WebDeveloper de Firefox y un <HR> con ancho exacto para medir.
Gracias, un saludo