Je dois faire une déclaration if
en utilisant Ruby qui vérifie si le navigateur du client supporte HTML5 ou non.Comment vérifier si un navigateur prend en charge les fonctionnalités HTML5 et CSS3 à l'aide de Ruby?
Répondre
Version abrégée: vous ne pourrez et ne devriez pas. Version longue: Il peut être possible, si vous faites du sniffing d'agent utilisateur, d'identifier si le navigateur de l'utilisateur supporte ou non le HTML5. Mais cela demanderait beaucoup d'efforts pour bien faire les choses. La meilleure solution est d'utiliser quelque chose comme Modernizr (http://www.modernizr.com/) pour faire votre détection de fonctionnalités sur le côté client.
huh ?? les informations du navigateur sont envoyées dans l'en-tête de la requête http !! Vous pouvez le lire via la commande request.env ["HTTP_USER_AGENT"] dans Ruby on rails, Ce que je veux, c'est savoir quelles versions de chaque célèbre navigateur peuvent gérer la plupart des fonctionnalités html5 – wael34218
C'est mon point, vous pouvez renifler tout ce que vous voulez. Cependant, ce n'est pas une solution garantie et c'est en fait une très mauvaise idée par rapport aux alternatives. Pourquoi auriez-vous besoin de vérifier sur le serveur de toute façon? –
Il ne sera pas précis à 100%, mais je veux faire Chrome 5 et plus, firefox4, IE12983 et au-dessus, l'opéra ?? et ci-dessus, et safari ?? et au-dessus rendent la mise en page entièrement différente pour ma page ... Je pense avoir répondu à ma propre question, merci pour votre aide – wael34218
Il est possible de lire les informations du navigateur en fonction de la chaîne HTTP_USER_AGENT
, mais, comme mentionné ci-dessus et de nombreux autres endroits, il est également très facile d'usurper cette information. Du côté serveur, nous nous en sommes seulement souciés car cela nous a donné une vision globale des navigateurs clients utilisés pour accéder à nos sites.
Essayer de réagir à un navigateur sur le backend et présenter un contenu différent a été essayé par les sites pendant un certain temps, mais il échoue en raison de la façon dont les navigateurs usurpent d'autres navigateurs, mais n'ont pas les mêmes bogues.
Comme l'a dit @Stephen Orr, CSS est une meilleure façon de gérer cela. Bien sûr, c'est l'enfer et encore sujet aux erreurs, mais c'est mieux que de renifler la signature du navigateur. Nous avions l'habitude de cusser toutes les versions d'IE parce qu'elles cassaient les corrections précédentes. Heureusement, les choses semblent s'améliorer au fur et à mesure que les vendeurs se rapprochent des standards.
Merci Greg, je pense que vous avez dit des parties de cela beaucoup mieux que moi. –
Il est possible de faire Feature detection sur HTML5, afin de détecter les fonctionnalités uniques de HTML5 lorsque vous en avez besoin. Il n'y a, cependant, aucun moyen de détecter si un navigateur supporte le HTML5 comme un gros morceau - car il n'y a pas de manière "officielle" de dire si un navigateur supporte tout le HTML5 ou seulement quelques parties de celui-ci.
La plupart des fonctions peuvent être détectées (avec JavaScript), mais certains types comme le champ caractéristique de forme à jour est un problème: http://united-coders.com/matthias-reuter/user-agent-sniffing-is-back
< [html5 element] id="somethingtobedazzledby">
Upgrade your browser
</ [html5 element] >
I a ajouté le balise 'css'. –
avez-vous vérifié http://html5test.com/? ils font une vérification de support de fonctionnalité html très complète. –
modernizr vous aide avec ce –