Is er een solide manier om te detecteren of een gebruiker gebruik maakt van een mobiel apparaat in jQuery of niet? Iets vergelijkbaars met de CSS @media attribuut? Ik wil een ander script uit te voeren als de browser is op een handheld apparaat.
De jQuery $.browser
functie is niet wat ik zoek.
Wat u doet door een mobiel apparaat te willen detecteren komt een beetje te dicht bij een "browser sniffing" concept IMO. Het zou waarschijnlijk veel beter zijn om wat feature detectie te doen. Bibliotheken zoals http://www.modernizr.com/ kunnen daarbij helpen.
Bijvoorbeeld, waar is de grens tussen mobiel en niet-mobiel? Het wordt elke dag waziger.
Het is geen jQuery, maar ik vond dit: http://detectmobilebrowser.com/
Het biedt scripts om mobiele browsers te detecteren in verschillende talen, waarvan JavaScript er een is. Dat kan je helpen met waar je naar op zoek bent.
Maar omdat je jQuery gebruikt, wil je misschien op de hoogte zijn van de jQuery.support collectie. Het is een verzameling eigenschappen voor het detecteren van de mogelijkheden van de huidige browser. Documentatie is hier: http://api.jquery.com/jQuery.support/
Aangezien ik niet weet wat je precies probeert te bereiken, weet ik niet welke van deze het nuttigst zal zijn.
Dat alles gezegd zijnde, denk ik dat je beste gok is om ofwel om te leiden of een ander script te schrijven voor de uitvoer met behulp van een server-side taal (als dat een optie is). Aangezien je de mogelijkheden van een mobiele browser x niet echt kent, zou het doen van de detectie-, en wijzigingslogica aan de serverzijde de meest betrouwbare methode zijn. Natuurlijk is dat allemaal een betwistbaar punt als je geen server-side taal kunt gebruiken :)
Als je je geen zorgen maakt over kleine schermen zou je breedte/hoogte detectie kunnen gebruiken. Op die manier, als de breedte onder een bepaalde grootte is, wordt de mobiele site getoond. Het is misschien niet de perfecte manier, maar het zal waarschijnlijk het gemakkelijkst te detecteren zijn voor meerdere apparaten. Misschien moet je er een specifiek voor de iPhone 4 (grote resolutie) in stoppen.