|
|
|
|
PRATIQUE CLIENTS WEB |
|
|
|
Tester le support JavaScript |
|
"Comment puis-je connaître les capacités JavaScript du navigateur en cours ?"
(22/06/2005) |
|
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Après les années noires du DHTML et des scripts plus superficiels
qu'utiles, le langage JavaScript revient en grâce avec le besoin
d'applications avancées fonctionnant dans le navigateur, et l'effet
de mode des méthodes HTTPRequest. Nombre de scripts sont aujourd'hui
créés pour faire usage des techniques avancées de JavaScript.
Seulement,
le support de JavaScript est disparate, de la même manière que
celui de XHTML et CSS varie d'un navigateur à l'autre, et selon
les versions. Les méthodes de détéction de navigateur sont aujourd'hui
maîtrisées, et la reconnaissance de JavaScript pour chaque navigateur
est connue, mais il reste inadéquat de combiner ces deux savoirs
dans l'optique de découvrir le support JavaScript dudit navigateur.
Principales raisons : impossibilité de reconnaître tous les
navigateurs existants (certains petits navigateurs peuvent très
bien disposer d'un excellent support JS), et manque de pérennité
d'un tel test (la prochaine version d'un navigateur pourra être
optimale mais non reconnue).
De même, il est coutume de spécifier la version de JavaScript
devant appliquer un script, comme suit :
<script language="javascript1.2"
type="text/javascript">
<script language="javascript1.5" type="text/javascript">
Là encore, cette technique n'est pas recommandée : différents navigateurs implémentent différentes version
de JS, et la nécessité de doubler la taille des codes JS d'une
page rendent l'approche inapte à une productivité à long terme.
La seule méthode certaine de fonctionner est le test de l'existence
même des fonctionnalités au sein du navigateur, puis la redirection vers une fonction adaptée dans le cas contraire. Ainsi, si le
script a besoin de lancer la méthode getElementById(), il faudra
d'abord tester son existence :
if (document.getElementById) { ...
}
Plus largement, si on souhaite faire appel aux fonctionnalités
avancées du DOM, il faudra tester l'existence de celles-ci :
if (document.getElementById && document.createElement)
{ ... } |
|
|
|
|
|