Modernizr
Modernizr est une bibliothèque développée en JavaScript détectant l'implémentation native par le navigateur de différentes fonctionnalités récentes. Elle est distribuée sous licence MIT.
Développé par | Faruk Ateş et la communauté Modernizr |
---|---|
Dernière version |
3.2.0 ()[1] - [2] 3.3.0 ()[3] - [2] 3.3.1 (, )[4] - [2] 3.4.0 ()[5] - [2] 3.5.0 (, )[6] - [7] - [2] 2.8.3 ()[8] 2.8.2 ()[9] 2.8.0 ()[10] 2.7.2 ()[11] 2.7.1 ()[12] 2.7.0 ()[13] 2.6.3 ()[14] 3.6.0 (, )[15] - [2] 3.7.0 ()[16] - [2] 3.7.1 ()[17] - [2] 3.8.0 ()[18] - [2] 3.9.0 ()[19] - [2] 3.9.1 ()[20] - [2] 3.10.0 ()[21] - [2] 3.11.0 ()[22] - [2] 3.11.1 ()[23] - [2] 3.11.2 ()[24] - [2] 3.11.3 (, )[25] - [2] 3.11.4 ()[26] - [2] 3.11.5 ()[27] 3.11.6 ()[28] - [2] 3.11.7 ()[29] - [2] 3.11.8 ()[30] - [2] 3.12.0 ()[31] - [2] 3.0.0 ()[2] 3.1.0 ()[2] |
Dépôt | github.com/Modernizr/Modernizr |
Écrit en | JavaScript |
Système d'exploitation | Multiplateforme |
Environnement | Navigateur web |
Type | Framework |
Licences | Licence MIT |
Site web | modernizr.com |
Historique
Faruk Ateş a annoncé la création de Modernizr le [32]. La version 1.0 a été publiée le [33]. La version 2.0 a été publiée le [34].
Fonctionnalité
Modernizr est capable de détecter l'implémentation native par le navigateur de technologies web provenant des spécifications HTML5 et CSS 3, toutes deux encore en cours d'élaboration. Modernizr permet aussi la détection d'autres fonctionnalités, comme le support de SVG, de la géolocalisation, de SMIL, des écrans tactiles et de WebGL.
Modernizr fournit donc un ensemble de fonctions permettant de détecter le support par le navigateur de fonctionnalités CSS 3, comme "border-image" ou "opacity", et HTML 5, comme "canvas" ou "draganddrop".
De plus, Modernizr fournit des fonctions utilitaires permettant de faciliter le développement d'applications web compatibles avec différents navigateurs. La fonction Modernizr.load()
, permettant le chargement conditionnel d'un script JavaScript en fonction d'un test de fonctionnalité, ce qui permet de faciliter grandement l'utilisation des polyfills. La fonction Modernizr.prefixed()
permet de connaitre le nom de l'implémentation d'une fonctionnalité disponible dans un navigateur. Par exemple, Modernizr.prefixed('boxSizing')
va retourner "MozBoxSizing" avec Firefox.
Modernizr fournit aussi un module appelé html5shiv, qui permet aussi le support des balises de structure de HTML5 dans Internet Explorer 6. Par exemple, il va dynamiquement transformer les balises section
en balise div
. Modernizr est donc lui-même un polyfill rendant IE 6 compatible avec les balises de structure de HTML5.
Pour terminer, Modernizr propose des API permettant d'étendre son fonctionnement, en offrant la possibilité d'écrire de nouveaux tests.
Compatibilité
Modernizr est compatible avec Internet Explorer 6 ou version ultérieure, Firefox 3.5 ou version ultérieure, Opera 9.6 ou version ultérieure, Safari 2 ou version ultérieure, Chrome, Safari Mobile, le navigateur d'Android, Opera Mobile et Firefox Mobile. Des tests sont en cours pour confirmer la compatibilité avec le navigateur de BlackBerry 6 ou version ultérieure.
Références
- « Modernizr 3.2.0 »
- npmjs, (base de données en ligne), consulté le
- « Modernizr 3.3.0 »
- « Modernizr 3.3.1 »
- « Modernizr 3.4.0 »
- « Modernizr 3.5.0 »
- « Release 3.5.0 », (consulté le )
- « Release 2.8.3 », (consulté le )
- « Release 2.8.2 », (consulté le )
- « Release 2.8.0 », (consulté le )
- « Release 2.7.2 », (consulté le )
- « Release 2.7.1 », (consulté le )
- « Release 2.7.0 », (consulté le )
- « Release 2.6.3 », (consulté le )
- « Release 3.6.0 », (consulté le )
- « Release 3.7.0 », (consulté le )
- « Release 3.7.1 », (consulté le )
- « Release 3.8.0 », (consulté le )
- « Release 3.9.0 », (consulté le )
- « Release 3.9.1 », (consulté le )
- « Release 3.10.0 », (consulté le )
- « Release 3.11.0 », (consulté le )
- « Release 3.11.1 », (consulté le )
- « Release 3.11.2 », (consulté le )
- « Release 3.11.3 », (consulté le )
- « Release 3.11.4 », (consulté le )
- « Release 3.11.5 », (consulté le )
- « Release 3.11.6 », (consulté le )
- « Release 3.11.7 », (consulté le )
- « Release 3.11.8 », (consulté le )
- « Release 3.12.0 », (consulté le )
- (en)Proudly Announcing: Modernizr
- (en)Modernizr 1.0
- (en)Modernizr 2