 |
Pas de changement après modification
du script
Il vous arrivera sûrement qu'après une modification (correction?)
de votre script, aucun changement ne soit visible à l'écran
après avoir fait "Reload" ou "Actualiser".
- Vérifier bien si vous avez enregistré vos modifications
(cela arrive même aux meilleurs).
- Il faut parfois recharger plus profondément votre page en faisant
Shift + Reload (sous Netscape) ou cliquez dans la zone de localisation
du browser et faire Enter.

|
 |
Le cas Microsoft Internet Explorer 3.0
Microsoft Explorer 3.0 supporte une forme de Javascript. Microsoft a
implanté le langage Javascript séparément et indépendamment
de Netscape. Internet Explorer "comprend" le code Javascript,
mais son implémentation n'est pas complète. Il faut garder
cela à l'esprit lorsque on veut écrire du code Javascript
qui doit fonctionner à la fois sous Netscape et Explorer 3.0.
Votre code Javascript sous Explorer doit
- impérativement être du Javascript 1.0. Toutes les fonctions
Javascript 1.1, si familières pour Netscape 3, entraîneront
des messages d'erreur.
- ne pas faire appel à des applications Javascript sophistiquées.
- s'armer de patience car certains codes Javascript élémentaires
fonctionnant à merveille sous Netscape, devront être réécrits
avec une syntaxe plus stricte.
Pour corser le tout, Microsoft conscient des lacunes de son browser,
a sorti une évolution de son interpréteur Javascript. On
voit ainsi apparaître fin 97, une JScript.dll version 2. Celle-ci
apporte une meilleure compatibilté avec Netscape 3 (comme les objets
Array (les tableaux)). Comprendre Explorer 3.0 et Javascript n'était
déjà pas simple mais nous voilà maintenant avec du
Javascript sous Explorer 3.0 avec la JScript.dll version 1 et la JScript.dll
version 2! Quel plaisir ...
Pour Microsoft Explorer 4.0, celui-ci adhère strictement au standard
appelé ECMAScript, qui couvre essentiellement la version Javascript
1.1. A fin novembre 97, il est encore un peu tôt pour se faire une
idée précise mais il est déjà évident
que Microsoft Explorer 4.0 intègre beaucoup mieux (ou très
bien ?) le Javascript.
Dans le détail -- et je reprends ce qui suit du site de Danny
Goodman (www.dannyg.com) qui est "La" référence
en Javascript -- :
Objets non supportés par Explorer 3.0
- L'objet Image[]. Donc pas de onmouseOver sous Explorer 3.
- Pour l'objet Area pas de ommouseOver.
- Pas d'Applet
- Pour les tableaux, écriture stricte Javascript 1.0 pour la version
1. Mais l'objet Array est implanté avec la version 2.
- ...
Propriétés, méthodes, gestionnaires d'événement
non supportés
- Window
onerror closed blur() focus() scroll() onBlur= onFocus=
- Location
reload() replace()
- Document
applets[] domain embeds[] images[] URL
- Link
onMouseOut=
- Form
reset() onReset=
- (All Form Elements)
type
- Navigator
mimeTypes[] plugins[] javaEnabled()
- String
prototype split()

|
 |
Mon script ne fonctionne pas dans un tableau
Javasript dans des tableaux, ce n'est pas une histoire d'amour (bug?).
On recommande dans la littérature de ne pas placer de tag <SCRIPT>
dans des balises <TD> mais plutôt de commencer le tag <SCRIPT>
avant le tag <TD> et d'écrire le tag <TD> jusqu'au tag
</TD> par une écriture document.write. Et même, pour
être sur de son coup, d'écrire tout la tableau avec le document.write.
Ce qui donnerait :
<SCRIPT LANGUAGE="Javascript">
<!--
document.write("<TABLE BORDER=1>");
document.write("<TR>");
document.write("<TD>");
document.write("votre texte");
document.write("</TD>");
document.write("<TD>");
document.write("votre texte");
document.write("</TD>");
document.write("</TR>");
document.write("</TABLE>");
//-->
</SCRIPT>
En conclusion, au niveau débutant, éviter de mettre du
Javascript dans des tableaux. Ajoutons qu'il n'y a pas de problèmes
pour les formulaires. Mais est-ce vraiment du Javascript?...

|
 |
Adapter le script selon le browser du lecteur
Avec les méthodes et propriétés de l'objet navigator
(voir ce chapitre), il y aura moyen de détecter le type et la version
du browser. Ce qui sera très utile pour adapter vos scripts au browser
et à la version de celui-ci.
La compatibilité des pages Javascript avec les différents
types et versions en circulation pose vraiment problème. A l'avenir,
on peut espérer une mutation rapide vers Explorer 4 pour les partisans
de Microsoft et l'abandon progressif de Netscape 2.0 pour des versions
plus récentes. Ce qui simplifiera grandement la situation.
Si vous n'êtes pas obnubilés par la compatiblité de
vos pages de script (et les messages d'erreurs qui risquent d'apparaître),
soyez quand même sympa d'avertir vos lecteurs. Ainsi, le petit script
suivant informe les utilisateurs de Explorer 3.0 qu'ils risquent de rencontrer
quelques désagréments.
<SCRIPT LANGUAGE = "JavaScript">
<!--
var name = navigator.appName ;
if (name == 'Microsoft Internet Explorer') {
document.write('Attention! Vous utilisez Microsoft Explorer 3.0.') <BR>');
document.write('Avec ce browser, certains scripts peuvent ne pas fonctionner
correctement');
}
else { null }
//-->
</SCRIPT>
Pour des informations très complètes sur les différentes
versions de Javascript, je ne peux que vous conseiller vivement "JavaScript
Object Road Map and Compatibility Guide", quatre feuillets que l'on
peut télécharger sur le site de Danny Goodman ("La"
référence !) à l'adresse www.dannyg.com.

|
 |
Arrondir les nombres derrière la virgule
Il arrive que Javascript vous affiche un résultat de division
du type 1.599999999999999. Ce qui est assez disgracieux, j'en conviens.
Nous approfondirons le sujet lors de l'étude de la méthode
Math. Parmi les différents systèmes possibles , je vous propose
celui-ci :
variable= Math.round (variable*100)/100
Ainsi, 1.599999 est multiplié par 100 ce qui fait 159.9999. La méthode
Math.round (159.9999) donne 160, qui divisé par 100 fait 1.60. Avec
...*100)/100, on obtient 2 chiffres après la virgule. Devinez pour
3 chiffres après la virgule...

|
 |
Comment lire et écrire des fichiers
en Javascript
Il est impossible de lire un fichier ou d'écrire dans un fichier
en Javascript. C'est sûrement très bien pour la sécurité
de votre système mais c'est dommage pour, par exemple, l'exploitation
d'une base de données.

|
 |
Ciel! On voit mes sources Javascript
Et oui, par "View Document Source", le lecteur un peu initié
pourra voir, étudier, copier vos sources Javascript. Il existe sur
le net plusieurs petits programmes de codage des scripts, d'appels à
des fichiers dissimulés, etc. Je suis arrivé à la
conclusion que aucun système ne pourra garantir une confidentialité
absolue de vos scripts. Si pour les entreprises, cela peut être gênant
pour des données sensibles (mais il y a alors d'autres techniques
disponibles, je pense à du Java), pour les simples particuliers
on peut se demander si cela a vraiment de l'importance... Ne seriez vous
pas un peu paranoïaque ? Si oui, il y a toujours moyen de coder votre
Javascript d'une façon (presque) incompréhensible pour le
programmeur moyen.

|
 |
Transmettre des variables d'une page à
l'autre
Vos variables sont définies dans le script de l'entité
que constitue votre page Web. Vous pouvez souhaiter continuer à
utiliser ces variables dans une autre page ou tout au long de votre site.
Comment faire? La solution est d'utiliser des frames. Javascript permet
de passer des variables d'un frame vers des objets appartenant à
un autre frame. Et comme tous les browsers Javascript admettent des frames,
pourquoi s'en priver (voir un des chapitres suivant).

|
 |
Les boutons radio me renvoient l'ordre inverse
Ce bug propre à Netscape 2, peut vous jouer de grosses surprises
par exemple dans un formulaire de commande utilisant des boutons radio.
En effet si le bouton radio 1 d'une série de 3 est checked, c'est
la valeur 3 qui est retournée. Pour vous, le client a commandé
une chemise Large alors qu'il souhaitait du Small !
Pour corriger ce bug, il suffit d'ajouter un gestionnaire d'événement
vide à chaque contrôle de la série de boutons radio.
<FORM NAME="radioTest">
<INPUT TYPE="radio" NAME="test" VALUE="A"
onClick="">A
<INPUT TYPE="radio" NAME="test" VALUE="B"
onClick="">B
<INPUT TYPE="radio" NAME="test" VALUE="C"
onClick="">C
</FORM>
|