Existe-t-il un moyen solide de détecter si un utilisateur utilise ou non un appareil mobile dans jQuery ? Quelque chose de similaire à l'attribut CSS @media ? Je voudrais exécuter un script différent si le navigateur est sur un appareil portable.
La fonction jQuery $.browser
n'est pas ce que je recherche.
Ce que vous faites en voulant détecter un appareil mobile se rapproche un peu trop du concept de "reniflage de navigateur", selon moi. Il serait probablement beaucoup mieux de faire de la détection de fonctionnalités. Des bibliothèques comme http://www.modernizr.com/ peuvent vous y aider.
Par exemple, où se situe la limite entre mobile et non-mobile ? Elle devient de plus en plus floue chaque jour.
Ce n'est pas jQuery, mais j'ai trouvé ceci : http://detectmobilebrowser.com/
Il fournit des scripts pour détecter les navigateurs mobiles dans plusieurs langages, dont JavaScript. Cela peut vous aider à trouver ce que vous cherchez.
Cependant, puisque vous utilisez jQuery, vous devriez peut-être connaître la collection jQuery.support. Il s'agit d'une collection de propriétés permettant de détecter les capacités du navigateur actuel. La documentation est disponible ici : http://api.jquery.com/jQuery.support/
Comme je ne sais pas exactement ce que vous essayez d'accomplir, je ne sais pas lequel de ces éléments sera le plus utile.
Tout cela étant dit, je pense que votre meilleure chance est de rediriger ou d'écrire un script différent pour la sortie en utilisant un langage côté serveur (si c'est une option). Puisque vous ne connaissez pas vraiment les capacités d'un navigateur mobile x, faire la détection, et la logique de modification du côté du serveur serait la méthode la plus fiable. Bien sûr, tout cela n'a aucune importance si vous ne pouvez pas utiliser un langage côté serveur :)
Si vous n'êtes pas particulièrement préoccupé par les petits écrans, vous pouvez utiliser la détection de la largeur et de la hauteur. Ainsi, si la largeur est inférieure à une certaine taille, le site mobile s'affiche. Ce n'est peut-être pas la solution idéale, mais c'est probablement la plus facile à détecter pour plusieurs appareils. Il se peut que vous deviez en mettre une spécifique pour l'iPhone 4 (grande résolution).