2012-01-28 21 views
9

Yo estaba pensando en hacer algo con el jQuery.browser pero esto sólo regresa el navegador que está y si es un webkit, etc, etcEn javascript 'Si el teléfono móvil'

Así que básicamente desea desactivar ciertos archivos js incluso de carga si estás en un dispositivo móvil?

Supongo que puede hacerlo, pero ¿cómo?

+1

No es una solución de JavaScript, pero yo he utilizado este durante bastante tiempo: http: // detectmobilebrowsers. mobi/ – Brad

+2

Deberías hacerlo en el servidor, no en el cliente. – epascarello

+0

estoy de acuerdo. Ya tengo esto en su lugar. Detectando lo que el navegador me dice que es. Me gustaría comprobarlo dos veces;) –

Respuesta

27

Creo this answer es mejor, ya que no depende de la anchura de la pantalla:

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) { 
    // some code.. 
} 

Sé que ahora tiene una dependencia de navegador de marca, pero esto es un poco más fácil de mantener que la comprobación del tamaño de la pantalla.

+0

Actualizado y agregado como la respuesta correcta. También esta es una mejor solución por ahora. Sin embargo, aún me gustaría algo más que olfatear a los usuarios. –

+0

Si va a seguir esta ruta, puede hacerlo desde el lado del servidor, el agente de usuario está disponible a diferencia del ancho de pantalla (a menos que lo haga disponible). – Jasper

+1

heh, abajo votando la pregunta jasper? ekk bit infantil porque te cambio como la respuesta correcta: D El problema que tengo con los anchos es ahora que los dispositivos están informando anchos a ritmos muy diferentes. Incluso cuando debería ser una cosa, lo da a un ancho diferente –

14

Usted podría utilizar dimensiones de la pantalla, de esa manera se carga la pequeña interfaz de usuario para pantallas pequeñas:

if ($(window).width() < 480 || $(window).height() < 480) { 
    //small screen, load other JS files 
    $.getScript('/js/script.js', function() { 
     //the script has been added to the DOM, you can now use it's code 
    }); 
} 

Docs para $.getScript(): http://api.jquery.com/jquery.getscript

+1

La resolución de pantalla no es apropiada para detectar la capacidad del dispositivo móvil. Muchos dispositivos con resoluciones de pantalla alta/baja tienen distintas capacidades, tanto en el móvil como en el escritorio. Además, no creo que pregunte por UI, sino por algún otro script. – Brad

+0

Desafiantemente interesante. Actualmente usando media quires, que tienen sus problemas. Como Brad dijo que hay limitaciones con los navegadores móviles, mienten y dan dimensiones tontas. Lo haría en el cambio de tamaño de la pantalla solo con marcar. Me pregunto qué tan codicioso será sin embargo. –

+0

Las dimensiones de la pantalla para dispositivos móviles pueden ser extravagantes, pero puede entrar en el estadio con ellas. – Jasper

0

El problema con los dispositivos móviles frente a los navegadores tradicionales es que .. Bueno, ¿cuál es la diferencia?

Hay computadoras de escritorio con conexiones más lentas que su teléfono celular. Hay teléfonos celulares con resoluciones más altas con computadoras de escritorio. Y luego, por supuesto, lo contrario también es cierto.

Idealmente, debería considerar hacer su sitio de tal manera que funcione bien en ambos. Si bien en la práctica, esto a menudo es difícil, creo que en estos días usted encontrará que sus esfuerzos valen la pena. Tus usuarios también te amarán por eso.

Si usted todavía se siente la necesidad de intentar esto ... especialmente en JavaScript ... ver este post: Mobile detection

+0

Sí, creo que esta es la razón por la que estoy investigando. No necesito cargar grandes sistemas de comentarios y mis fantásticas animaciones, etc. para dispositivos móviles. Preferiría que no usen mis solicitudes http, si es posible. –

2

Sé que esta es una respuesta muy tardía y es probable que haya resuelto su problema. Pero de todos modos, esto es lo que utilizo para todos mis proyectos:

window.isMobile = /iphone|ipod|ipad|android|blackberry|opera mini|opera mobi|skyfire|maemo|windows phone|palm|iemobile|symbian|symbianos|fennec/i.test(navigator.userAgent.toLowerCase()); 
0

$(window).resize(function(){ /*Bind an event handler to the "resize"*/ 
 
    if ($(window).width() < 480 || $(window).height() < 480) { 
 
     //what you have to do here 
 
    } 
 
})

+1

por favor agregue explicaciones a este código – Ibo

Cuestiones relacionadas