Facebook LinkedIn SourceForge Twitter RSS LastFM
logologo

Détection de browsers avec Mootools

Geoffray Warnants|24/11/2008|3 commentaires

Le comportement des navigateurs tant aussi diversifi qu'improbable, il s'avre souvent fort tentant d'user de certains "hacks", autant en CSS qu'en Javascript. Bien que ces pratiques soient utiliser avec prudence (elles constituent parfois une antorse aux standards du web et pourraient provoquer un comportement inattendu sous les futures versions du navigateur ainsi "patch"), elles permettent de corriger certains comportements tranges et autres problmes de rendu.

En Javascript, pour mettre en place nos propres traitements alternatifs selon le browser, Mootools, plutt que de proposer un moyen d'identifier le browser qui interprte la page, propose une dtection plus intelligente base sur le moteur interne du navigateur. Comme la plupart des navigateurs sont fonds sur les mmes principaux moteurs, il est en effet plus judicieux d'effectuer la distinction sur ce critre. Pour ce faire, il suffit d'interroger quelques proprits de l'objet Browser pour connatre le moteur de rendu qui interprte la page :

  • Browser.Engine.name : (string) Nom du moteur
  • Browser.Engine.version : (int) Version du moteur
  • Browser.Engine.gecko : (bool) True si le navigateur utilise le moteur Gecko
  • Browser.Engine.trident : (bool) True si le navigateur utilise le moteur Trident
  • Browser.Engine.webkit : (bool) True si le navigateur utilise le moteur WebKit
  • Browser.Engine.presto : (bool) True si le navigateur utilise le moteur Presto

Un rapide petit test execut sur une panoplie de navigateurs (merci BrowserShots) m'a permi d'tablir le tableau rcapitulatif suivant :

Browser.Engine
.name .version .gecko .trident .webkit .presto
Firefox 1.5 gecko 18 true undefined undefined undefined
Firefox 2.0 gecko 18 true undefined undefined undefined
Firefox 3.0 gecko 19 true undefined undefined undefined
Firefox 3.1 gecko 19 true undefined undefined undefined
Seamonkey 1.1 gecko 18 true undefined undefined undefined
Seamonkey 2.0 gecko 19 true undefined undefined undefined
Camino 1.6 gecko 18 true undefined undefined undefined
Galeon 2.0 gecko 18 true undefined undefined undefined
Navigator 9.0 gecko 18 true undefined undefined undefined
Epiphany 2.22 gecko 18 true undefined undefined undefined
K-Meleon 1.5 gecko 18 true undefined undefined undefined
Flock 1.2 gecko 18 true undefined undefined undefined
Flock 2.0 gecko 19 true undefined undefined undefined
IE 5.5 trident 4 undefined true undefined undefined
IE 6.0 trident 4 undefined true undefined undefined
IE 7.0 trident 5 undefined true undefined undefined
IE 8.0 trident 5 undefined true undefined undefined
Avant 11.7 trident 5 undefined true undefined undefined
Konqueror 3.5 webkit 419 undefined undefined true undefined
Safari 2.0 webkit 419 undefined undefined true undefined
Safari 3.2 webkit 525 undefined undefined true undefined
Safari 4.0 webkit 525 undefined undefined true undefined
Chrome 0.3 webkit 525 undefined undefined true undefined
Chrome 1.0 webkit 525 undefined undefined true undefined
Opera 8.53 presto 925 undefined undefined undefined true
Opera 9.52 presto 950 undefined undefined undefined true
Opera 9.62 presto 960 undefined undefined undefined true
Opera 10.0 presto 960 undefined undefined undefined true

Un mcanisme similaire existe aussi pour dtecter le systme d'exploitation, mais cette fois sans permettre d'en distinguer les versions.

Browser.Platform
.name .win .linux .mac .ipod .other
Windows win true undefined undefined undefined undefined
Linux linux undefined true undefined undefined undefined
Mac mac undefined undefined true undefined undefined
iPod ipod undefined undefined undefined true undefined
Autres (BSD, ...) other undefined undefined undefined undefined true

<<< Retour

Vos commentaires

3 commentaires posts

Coralie Sanchez
10/12/2020 19:36Post par Coralie Sanchez
Parfois, il arrive que mon ordinateur se plante à cause de navigateurs que j?ai installé. Puisque je ne connais presque rien dans le monde de l?informatique, je n?avais que le choix d?attendre de l?aide à chaque fois qu?il plante.
Charlie Monnier
22/10/2020 18:24Post par Charlie Monnier
MooTools est un outil modulable et compact, surtout il est doté d?une interface de programmation élégante et bien documentée et d?une forte orientation objet. C?est un outil qui facilite la vie des développeurs aguerris et professionnels de JavaScript.
Roxane Laurent
17/09/2020 06:48Post par Roxane Laurent
Merci beaucoup pour cette astuce. Depuis longtemps, j?utilise parfois MooTools pour rendre efficaces tous mes projets Web. Et j?ai remarqué qu?il est préférable de l?utiliser dans la version de compatibilité 1.4 pour déterminer une plateforme.

Ragir cet article

*


(Ne sera pas publie, servira uniquement afficher votre gravatar)


(Lien en dur et dofollow)

zend framework