Home > Internet & Telecoms > Javascript Tutorial

Chapitre 1 | Chapitre 2 | Chapitre 3 | Chapitre 4 | Chapitre 5 | Chapitre 6 | Chapitre 7 | Chapitre 8 | Chapitre 9 | Chapitre 10

Chapitre 6 Les méthodes, les messages d'erreurs...


6.1 Les methodes alert(), prompt(), confirm()


La méthode alert() affiche une boite de dialogue dans laquelle est reproduite la valeur (variable et/ou chaîne de caractères) de l'argument qui lui a été fourni. Cette boite bloque le programme en cours tant que l'utilisateur n'aura pas cliqué sur "OK". Alert() sera aussi très utile pour vous aider à débbuger les scripts. Sa syntaxe est :

alert(variable);
alert("chaîne de caractères");
alert(variable + "chaîne de caractères");

Si vous souhaitez écrire sur plusieurs lignes, il faudra utiliser le signe \n.

Dans le même style que la méthode alert(), Javascript vous propose une autre boite de dialogue, dans le cas présent appelée boite d'invite, qui est composée d'un champ comportant une entrée à compléter par l'utilisateur. Cette entrée possède aussi une valeur par défaut. La syntaxe est : prompt("texte de la boite d'invite","valeur par défaut");. En cliquant sur OK, la méthode renvoie la valeur tapée par l'utilisateur ou la réponse proposée par défaut. Si l'utilisateur clique sur Annuler ou Cancel, la valeur null est alors renvoyée. Prompt() est parfois utilisé pour saisir des données fournies par l'utilisateur. Selon certaines sources, le texte ne doit cependant pas dépasser 45 caractères sous Netscape et 38 sous Explorer 3.0.

Cette méthode affiche 2 boutons "OK" et "Annuler". En cliquant sur OK, continue() renvoie la valeur true et bien entendu false si on a cliqué sur Annuler. Ce qui peut permettre, par exemple, de choisir une option dans un programme. La syntaxe de l'exemple est : confirm("Voulez-vous continuer ?")


6.2 Une minuterie


Javascript met à votre disposition une minuterie (ou plus précisément un compteur à rebours) qui permettra de déclencher une fonction après un laps de temps déterminé. La syntaxe de mise en route du temporisateur est : nom_du_compteur = setTimeout("fonction_appelée()", temps en milliseconde). Ainsi, setTimeout("demarrer()",5000) va lancer la fonction demarer() après 5 secondes. Pour arrêter le temporisateur avant l'expiration du délai fixé, il y a : clearTimeout(nom_du_compteur)


6.3 L'emploi de this


Pour désigner l'objet en cours, Javascript met à votre disposition le mot-clé this. Cette écriture raccourcie est souvent utilisée en remplacement du chemin complet de l'objet dans un formulaire. Par exemple, soit un script avec un formulaire :

<FORM NAME="form3">
<INPUT TYPE="radio" NAME="choix" VALUE="1">Choix numéro 1<BR>
<INPUT TYPE="radio" NAME="choix" VALUE="2">Choix numéro 2<BR>
<INPUT TYPE="radio" NAME="choix" VALUE="3">Choix numéro 3<BR>

<INPUT TYPE="button"NAME="but" VALUE="Quel et votre choix ?" onClick="choixprop(form3)">
</FORM>

Au lieu d'employer choixprop(form3), on aurait pu utiliser choixprop(this.form) et éviter ainsi toute confusion avec les autres noms de formulaires. Dans cet exemple, this.form désigne le formulaire form3 complet. Par contre, choixprop(this) n'aurait désigné que l'élément de type bouton du formulaire form3. Pour être complet, this est utilisé aussi pour créer une ou plusieurs propriétés d'un objet. Ainsi, pour créer un objet livre avec les propriétés auteur, éditeur et prix cette opération peut être effectuée à l'aide de la fonction :

function livre(auteur, editeur, prix) {
this.auteur = auteur;
this.editeur = editeur;
this. prix = prix;
}


6.4 Les types d'erreurs


On ne peut pas dire que les outils de débuggage offerts par Javascript soient des plus évolués. En effet, on ne peut se fier à 100% aux précisions données par l'interpréteur. Le "Javascript Error line x" est plutôt à comprendre comme "ça commence à foirer à la ligne x" et il sera parfois nécessaire de remonter de plusieurs lignes dans le script pour trouver l'erreur initiale. Il y a 3 grandes catégories d'erreurs dans l'utilisation d'un programme Javascript : les erreurs au chargement, les erreurs à l'exécution, les erreurs de logique.

Au chargement du script par le browser, Javascript passe en revue les différentes erreurs qui peuvent empêcher le bon déroulement de celui-ci. Les erreurs au chargement, nombreuses lors de l'apprentissage de Javascript, sont souvent dues à des fautes de frappe et/ou des erreurs de syntaxe. Pour vous aider à déterminer l'erreur, Javascript affiche sa boite de message d'erreur, vous indique le problème et le texte de l'erreur. Ne perdez pas de vue que Javascript ne vous indique pas toujours l'erreur véritable et que selon l'erreur, celle-ci peut se situer bien plus avant dans le script. Des exemples classiques d'erreurs au chargement sont des parenthèses ou des accolades non fermées, des guillemets manquants, etc.

Les erreurs à l'exécution: ici votre script se charge sans problème, mais une boite de message d'erreurs apparaît lorsque l'exécution du script est demandée. Alors que les erreurs au chargement étaient surtout dues au mauvais usage de la syntaxe, les erreurs à l'exécution proviennent d'un mauvais usage des commandes ou des objets Javascript. Un exemple d'erreur à l'exécution est un appel erroné à un une variable ou une fonction inexistante (car il y a, par exemple, une erreur dans le nom de la variable ou de la fonction).

Les erreurs de logique sont les plus vicieuses car le "débuggeur" de Javascript ne signale bien entendu aucune erreur et votre script se déroule correctement. A l'arrivée, le résultat ne correspond pas à celui espéré. Il n'y a plus qu'à revoir la construction logique de votre script. De nombreuses erreurs de logique sont dues à des valeurs de variables incorrectes.

Quelques conseils : dans le cas où l'utilisateur doit entrer une valeur, celle-ci était-t-elle au bon format? N'est-il pas utile de prévoir un petit script pour vérifier le format d'entrée ? On peut ajouter des points de contrôle de valeur de variable ou de passage avec l'instruction alert(variable) ou alerte("Point de passage1").


6.5 Les grands classiques des erreurs


On peut dresser une liste d'erreurs que tous les débutants (et même certains plus confirmés) font ou feront tôt ou tard :

Soyez vigilant au nom des variables (case sensitive). Mavariable et mavariable sont deux variables distinctes. Eviter d'utiliser des noms de variables trop rapprochants.

Le nom de la fonction a-t-il bien la même orthographe dans la déclaration et dans l'appel. Le nom des fonctions est-il bien unique dans le script?

N'oubliez pas les guillemets ou apostrophes avant et après les chaînes de caractères. ·Avez-vous bien mis des virgules entre vos différents paramètres ou arguments?

Avez-vous placé vos accolades au bon endroit sans avoir oublié de les fermer (surtout dans le cas de blocs de commandes imbriquées).

Assurez-vous que les noms des objets Javascript sont corrects. Le piège est que les objets Javascript commencent par une majuscule (Date, Math, Array...) mais que les propriétés commencent par une minuscule (alert).

La confusion entre = opérateur d'affectation et == opérateur de comparaison

Finalement, débugger du Javacript n'est pas toujours la joie mais avec l'habitude de ce genre d'exercice, on s'en sort assez bien. Conscient de ce réel problème, on semble mettre au point chez Netscape et Microsoft des débuggeurs.

6.6 Pas de changement après modification du script


Il vous arrivera sûrement qu'après une modification et/ou 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. 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.


6.7 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éécrit 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.


6.8 Le script ne fonctionne pas dans un tableau


On recommande de ne pas placer de tag <SCRIPT> dans des balises <TD> mais plutôt de commencer le tag <SCRIPT> avant le tag <TD> et de tout écrire, du 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. 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.


6.9 Adapter le script selon le browser du lecteur


Avec les méthodes et propriétés de l'objet navigator, 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.

<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>


6.10 Arrondir les nombres derrière la virgule


Il arrive que Javascript vous affiche un résultat de division du type 1.599999999999999. Une des solutions possibles pour éviter ceci : 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.


6.11 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.

[ HTML Language | Javascript Tutorial | Mobile Communications ]

©

Contact Information