reSalut,
ça marche coyote ? c'était les cookies qu'étaient plus frais ?
... pour répondre a Basile
Je ne me considère vraiment pas comme un pro. de ces aspects de développement mais on y est très vite (et même immédiatement) confronté dés que l'on veut faire des choses un peu originales tout en ayant le souci de servir au mieux le maximum de clients.
Au delà des gadgets copiés/collés qu'utilisent quelques webmestres (ex.: la neige qui tombe sur la page), le javascript (comme le XML/XSL, le CSS et autres copains) présente l'avantage d'utiliser la puissance de travail du client, puissance de plus en plus conséquente, libérant ainsi le serveur et le réseau, d'une charge de mise en forme ou de calcul pouvant être effectué directement sur le client. On peut gagner en fluidité en limitant les échange de données serveur/client sans pour autant penaliser les clients mais en générant d'épineux problèmes d'interopérabilité.
.. mais comment réaliser autrement ces choses "marrantes, jolies et pratiques" comme l'échange de clef MD5 en JS entre le client et le serveur lorque l'on se connecte sur les serveurs Yahoo (https / mails) = économie de ressources serveur considérable qu'il aurait fallu scripter sur le serveur et quand on rapporte cela au nombre de clients qui doivent se connecter chaque minutes...
... ou plus basiquement dans un formulaire, une variables ou un tableau avec des valeurs possibles connues et peu nombreuses (une liste de pays par exemple), plutot que, quand le client valide un choix aller parser sur le serveur le tableau, si on lui as envoyé ce tableau précédemment, on a gagné une étape. Gain pour le client : pas d'attente (même si initialement cette attente se retrouve en partie lors de la 1ere interrogation on y gagne quand même).
Personnellement je testais sur des versions 5 de MSIE (version installée par défaut avec Windows 98) netscape, opéra et les versions firefox/mozilla/... installées par défaut par les linux/unix du moment. (Pour Mac OS9
microsoft fourni aussi gratuitement le navigateur MSIE sinon je ne me souviens plus du nom, et puis les utilisateur d'AOL en ont un aussi) ...
L'avantage du développement pour intranet c'est que l'on a dans une certaine mesure, une vision de son parc client. Windows 9x ayant tendance a disparaitre ou étant proprement upgradé (tout au moins pour les navigateurs) et il suffit de consulter des stats de fréquentation clients/navigateurs/os du web pour en avoir le coeur net, ce couple Win9x/IE5 peut raisonablement être à présent écarté au profit de XP et de la version du navigateur par défaut (je ne sais pas laquelle ?).
En rêgle générale, pour l'interoperabilité on peut partir (a quelques exceptions près) du principe que si ça fonctionne avec netscape/firefox ça fonctionnera avec MSIE. et ça c'est vrai aussi pour le XML/XSL, la DOM et autres CSS. Le Javascript est une norme "de fait" apparue a une époque ou Microsoft ne s'interressait pas encore a Internet (il s'y est intéressé très tard et la seule alternative viable au première version du navigateurs que MS imposait avec Windows95 et même 98 fut longtemps netscape).
Le problème majeur viens essentiellement du fait qu'a présent le navigateur MS est plutot stable et de nombreux développeurs web codent uniquement sur des machines Microsoft et avant tout
pour des machines MS. Ils utilisent de par ce fait du javascript (ou pire ;-) parfois même du vbscript ! X-o ) proprietaire microsoft, editeur qui a la facheuse habitude de créer sa propre syntaxe, parfois logique et plus simple d'ailleurs, permettant encore plus de chose au niveau client, mais souvent pas a la norme. (A contrario si tes clients sont essentiellement composé de MSIE ça peut être interressant de s'écarter de la norme en permettant par exemple d'utiliser des raccourcis clavier dans les formulaires d'un intranet dans des masques de saisie récurant par exemple, les autres devront faire plein de clic dans plein de cases, ceux qui voudront/pourront aller plus vite utiliseront les raccourcis).
Par souci de compatibilité descendante et par richesse, Microsoft, inclu donc normalement la norme en vigueur à laquelle se borne parfois, malheureusement pour eux, certain navigateurs qui se plante lorsqu'il faut interpréter du JS MS frelaté :-) ou se contente au mieux de l'ignorer.
A partir du moment ou on part dans le JS on ne peut plus être compatible avec tout le monde.
Opéra par exemple à longtemp mal géré la DOM, ce que sait très bien faire, depuis longtemps et dans le plus stricte respect de la norme, netscape.
En conclusion, on nivèle par le bas jusqu'ou l'on peut/veut car le javascript peut aussi être purement et simplement désactivé. Et pour Lynx ? Et pour les autres car on peut aussi penser a ceux qui surfent en braille ?!!
La pratique la plus répandue jusqu'à récemment était pour une même page/site un aiguillage au départ en gardant en commun ce qu'on peut et en distribuant a chaque client un contenu compatible pour le reste.
Ca peut vite devenir rebarbatif pour le développeur, et par voie de conséquence pour celui qui le rémunère, mais on imagine avec respect :-) le boulot des développeurs des sites un peu sophistiqués qui se sont pris la tête pour fonctionner même en mode texte. (mais alors là que d'échanges entre le client et le serveur). Mes sites ne fonctionnent définitivement pas avec lynx :-/ : de toute façon avec du flash.
Pour deboguer le JS je fais de l'echo : "alert" et du refresh ;-) mais il existe des outils de scripting JS très bien a ce qu'il parait, pour ma part, vi me suffit et puis comme pour le CSS (.css), j'externalise le JS (.js) plutot que de le mélanger avec le reste du code mais ça je suis sur que tu le fais déjà.
Le navigateur MSIE ne dispose pas a proprement parler d'un debogueur mais permet en option d'afficher les messages d'erreurs rencontrées lors de l'execution du JS.
Pour références :
(en français) par exemple : [
fr.selfhtml.org] qui retrace l'historique de la "norme" et ses dérives.
Sinon j'ai pas mal utilisé (en anglais) [
www.irt.org] qui à l'avantage d'être simple, clair, complet et d'aborder d'un point de vue pratique ces problèmes d'interopérabilité.
*MSIE Microsoft Internet Explorer