[Plan du site]
Vous êtes ici ---
> Le Site du Zéro
> Les tutoriels
> Non-Officiels
> Site Web
> Javascript
> Apprenez le Javascript ! > Intermédiaire > Les boîtes de dialogue
> Lecture du tutoriel
Les boîtes de dialogue
Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Dans ce chapitre, vous allez découvrir les boîtes de dialogue. Grâce à elles, nous pourrons commencer à interagir entre le script et l'utilisateur. À la fin de ce chapitre, vous pourrez demander l'âge du visiteur et le stocker dans une variable, et ça,
simplement.
Vous pourrez aussi faire quelques autres trucs sympathiques, que vous découvrirez à fur et à mesure de votre avancement dans ce premier chapitre. Alors, prêts ?
Ce chapitre est assez petit, car il y a peu de choses à retenir, mais n'est pas à négliger pour autant. (En gros, retenez bien les fonctions qui vont y être présentées, car on va s'en servir pour plus tard.)
Vous allez commencer par manipuler la fonction
alert, la plus simple des 3. Ah oui, j'avais oublié de vous le dire, mais toutes les boîtes de dialogues sont générées via une fonction.
Cette fonction
alert est très très simple, et n'a besoin que d'un paramètre pour pouvoir fonctionner. Une petite chose avant de faire un test de cette fonction : elle sert à informer un visiteur qui visualise la page. Vous allez le comprendre très vite si vous testez ce code.
Code : JavaScript1 | alert('Salut tout le monde !');
|
Ah, mais c'est ça le petit message qui apparaît en série sur certains sites et qui nous empêche de quitter la page !
Effectivement. Pour ce faire, il y a plusieurs façons. Soit vous voulez afficher différents messages à chaque alerte, et dans ce cas, vous faites appel à la fonction plusieurs fois de suite. Mais vous pouvez aussi faire comme ceci.
Code : JavaScript1
2
3
4
5
6 | var phrases = new Array('Message 1', 'Message 2', 'Message 3', 'Message 4');
for(var i = 0; i in phrases; i++)
{
alert(phrases[i]);
}
|
Soit vous voulez embêter le visiteur, et dans ce cas, vous faites une boucle qui répètera le même message un certain nombre de fois, comme le fait le script ci-dessous.
Code : JavaScript1
2
3
4 | for(var i = 0; i <= 200; i++)
{
alert('Vous avez cliqué '+i+' fois sur le bouton ok');
}
|
Je ne vous conseille surtout pas d'essayer ce script !
Si vous le mettez sur votre site, sachez que cela fait fuir les visiteurs (la plupart du temps). Mettez des alertes avec modération. Par exemple, un message qui nous dit 'bienvenue' quand on charge la page du site est très très gênant (si vous fréquentez souvent le site).
Et voilà, vous savez déjà tout de la fonction
alert, comme quoi, ce n'était pas trop dur.
Je vous laisse vous amuser avec cette super fonction, qui en ravira plus d'un ! Quand à nous, on se retrouve dans le sous-chapitre suivant.
Alors : sur qui avez-vous testé la boucle qui tourne 200 fois, et qui ne fait qu'afficher une alerte ? Je ne sais pas vous, mais moi, je n'ai pas pris qu'une victime pour cible (j'ai dû le faire une bonne dizaine de fois avant de me lasser

).
Nous allons maintenant nous occuper du cas de
confirm. C'est une fonction qui ressemble beaucoup à
alert, sauf qu'elle est là pour proposer un choix au visiteur. En général, le message qui précède le choix est une question...
Pour parler plus en détails de cette fonction, je vais vous dire ce que doit contenir son paramètre. Vous devez y placer la question que vous voudrez poser à votre visiteur. Attention, il ne peut répondre que par oui ou non : ne faites pas de question du style : "Quelle est la couleur du cheval blanc d'Henri IV ?". Cela n'a pas de sens de répondre par oui ou par non. Passons aux phrases de test, essayez-moi ceci.
Code : JavaScript1 | confirm('Voulez-vous que je vous repose cette question ?');
|
Ok, c'est beau tout ça, mais si on clique sur 'Oui / Ok' ou 'Non / Annuler', il ne se passe rien ! Pour ça, pas de problèmes. Si l'utilisateur clique sur 'Non' ou 'Annuler', alors la fonction retourne
false. Et s'il clique sur 'Oui' ou 'Ok', elle retourne
true. Voici donc ce qu'il faut faire.
Code : JavaScript1
2
3
4
5
6
7
8 | if(confirm('Je vais vous dire sur quel bouton vous allez appuyer')) /* si on clique sur ok */
{
alert('Vous avez cliqué sur ok !'); /* on affiche une alerte */
}
else
{
alert('Vous avez cliqué sur annuler !');/* sinon on en affiche une autre */
}
|
Bah voilà, je n'ai rien d'autre à ajouter, vous savez désormais vous servir de la boîte de dialogue de type
confirm. Elle est très utile si l'on veut ne poser qu'une ou deux questions au visiteur, sans avoir à créer un formulaire.
Eh oui, vous êtes déjà aux deux tiers de ce chapitre ! Mais il faut bien l'avouer, pour présenter trois fonctions, on n'a pas besoin de plus de dix minutes. Voilà pourquoi ce chapitre n'est pas très consistant, mais je vous rassure, on va se rattraper au chapitre suivant.
Pour ce dernier sous-chapitre, je vais vous présenter la fonction
prompt. Comme
confirm, elle sert à poser une question au visiteur. Mais cette fois-ci, il va nous répondre avec son clavier, et non sa souris ! Cela équivaut à une zone de saisie dans un formulaire.
La fonction
prompt doit avoir un paramètre, mais peut en supporter un deuxième. Comme avec les deux premières fonctions étudiées, le paramètre 1 sert à poser la question ou informer le visiteur. En revanche, le deuxième sert à afficher dans la zone de saisie un message prédéfini. Si vous voulez voir à quoi ça ressemble, essayez ce script.
Code : JavaScript1 | var saisie_du_visiteur = prompt('Quelle est la couleur du cheval blanc d\'Henri IV ?','Mais qu\'est-ce que j\'en ai à faire ?');
|
Après, tout va bien car ce que le visiteur a saisi est stocké dans la variable d'où vous avez appelé la fonction
prompt. Sauf si le visiteur a cliqué sur 'Annuler' ! En effet, regardez bien la boîte de dialogue
prompt : elle possède un bouton 'Ok' et un autre 'Annuler'.
Aperçu de la boîte de dialogue prompt sous Mozilla FireFox
Le seul problème c'est que si on clique sur ce bouton 'Annuler', la variable n'est pas un booléen. En effet, il existe une autre valeur "spéciale", qui n'est ni un chiffre, ni une chaîne de caractères, ni un booléen, et dont je ne vous avais pas parlé. Il s'agit de
null (à ne pas confondre avec 'null'). Donc, si vous avez cliqué sur 'Annuler',
prompt renvoie
null, et non
false. Nous pouvez maintenant tester si la personne n'a pas voulu quitter.
Code : JavaScript 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | var mot_de_passe = 'je t\'aime max !';
var reponse = prompt('Saisissez le mot de passe pour accéder à cette page top secrette de la NASA','007');
switch(reponse)
{
case null :
alert('Veuillez réessayer ultérieurement');
break;
case '007' :
alert('Vous ne croyez quand même pas qu\'on va vous servir le mot de passe sur un plateau !');
break;
case mot_de_passe :
alert('Voici les codes secrets pour les lancements de l\'arme nucléaire P305 : 981340D2ZS2 - 8893OIAZ - POE32EKFR7');
break;
default :
alert('Mauvais mot de passe !');
}
|
Utilisation de isNaN
Et si par hasard on veut que le visiteur n'entre qu'un chiffre ou un nombre, et pas autre chose, comment ferait-on ? On va faire entrer la fonction
isNaN dans la place

. Son nom provient d'une contraction du groupe de mots anglais "
is Not a Number", qui signifie "n'est pas un nombre" en français. Si le paramètre n'est pas un nombre, alors la fonction retourne
true. Voici un petit script qui vous le prouve ; après, on a fini.
Code : JavaScript 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 | function tester_age(age_entre)
{
var test;
if(isNaN(age_entre)) /* Si age_entre n'est pas un nombre */
{
alert('Vous n\'avez pas entré un nombre !');
test = false;
}
else
{
if(age_entre == null || age_entre == '') /* Si on a cliqué sur Annuler ou si on n'a rien entré */
{
alert('Vous n\'avez pas entré un nombre !');
test = false;
}
else
{
test = true;
}
}
if(!test) /* Et on fait le test final grâce à la variable test */
{
age = prompt('Quel est votre âge ?');
tester_age(age);
}
else
{
alert('Ah, tu as donc '+age_entre+' ans !');
}
}
var age = prompt('Quel est votre âge ?');
tester_age(age);
|
Grâce à la répétition de la fonction si on a entré quelque chose de différent d'un nombre, on redemande l'âge du visiteur jusqu'à ce qu'il entre un nombre. Pas besoin de boucle ou quoi que ce soit d'autre pour le redemander.
Ainsi s'achève le petit chapitre sur les boîtes de dialogues, qui ma foi, sont très pratiques et très utilisées !
En plus de cela, nous avons appris une fonction elle aussi très utile,
isNaN. Avant que nous nous quittions, j'aimerais vous faire tester une chose. Javascript va vous répondre une chose que vous devriez comprendre si vous avez un minimum de logique

. Voici le script à tester.
Code : JavaScript1
2 | var variable = 'texte' * 5;
alert(variable);
|
Il nous répond
NaN, qui signifie "
Not a Number", ce qui, en français, veut dire "pas un nombre". La variable
variable contient en fait une erreur. Ne me demandez pas pourquoi : ça n'a aucun sens de multiplier du texte par 5 ! Enfin, c'était juste pour vous montrer ceci.