Je ne vais pas refaire pour vous l’historique des User Agent, d’autres l’on fait bien mieux que moi. En résumé cette chaine de caractères qui se retrouve dans tous nos navigateurs ne sert plus à rien. C’est un bordel immonde dont il faudrait s’affranchir une bonne fois pour toute. Pourquoi je vous en parle aujourd’hui alors ? C’est simple, comme vous le savez probablement tous maintenant, Google a sorti son propre navigateur, Chrome, pour ne pas le citer. Bien que ce navigateur soit en béta, le buzz autour de celui-ci ne fini pas d’être entretenu par l’une ou l’autre prédiction sur sa suprématie avenir. Cela me rappelle les même estimations et la même agitation que l’on a connu à l’époque de la sortie de Google Talk et l’on sait depuis ce qu’il en est advenu de la suprématie de Google Talk. Mais là, je m’égare. On est en 2008 et cela va faire plus de 8 ans que l’on préconise l’arrêt de la détection des navigateurs via leur user agent mais cela n’empêche pas certains de continuer à utiliser cette méthode pour Chrome. La détection des capacités réelles du navigateur ou Object Detection est la seule et unique manière d’obtenir un script javascript simple et facile à maintenir. A bon entendeur salut.
Très bon article (surtout qu’il me cite à mes dépens)
S’il y a d’autres moyens cohérents de le faire je suis tout à fait preneur, ceci dit, mais je n’ai pas compris dans ton article ce qu’il pouvait être
@Ludovic
Comme tu as pu le constater Google Chrome et Safari dépendent du même moteur de rendu Webkit donc tout ce que permet Webkit est permis par Google Chrome, à l’exception de quelques fonctions Javascript très peu utilisées à l’heure actuelle. Donc, au lieu de vérifier ton user agent, il te suffit de vérifier l’existence de la méthode que tu désires utiliser avant de l’appeler, exemple rapide :
Si tu veux utiliser la fonction native getElementsByClassName, tu vérifie d’abord si elle existe dans le navigateur si oui tu l’utilises, sinon tu l’implémentes ou tu utilises une autre technique qui te donnera le même résultat mais de manière différente. Voilà, c’est propre et la maintenance de ton code est meilleur dans ces conditions. Cette technique s’appelle l’Object Detection.