Script dans Navigateur

Utiliser JavaScript dans une page HTML

JavaScript peut être intégré à un document HTML de deux manières:

Le tag SCRIPT

un script intégré au HTML avec le tag SCRIPT utilises le format: <SCRIPT> Le script JavaScript... </SCRIPT>

Le tag LANGUAGE est optionnel, et spécifie le langage du script utilisé:

<SCRIPT LANGUAGE="JavaScript"> Le script JavaScript... </SCRIPT>

Le tag HMTL, <SCRIPT>, et sa contrepartie, </SCRIPT> peut contenir autant de fonctions que vous voulez.

Attention: JavaScript respècte la casse, c'est-à-dire Qu'il voit la difference entre les MAJUSCULES et les minuscules.


Exemple 1: un script simple.

<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> document.write("Salut tout le monde!") </SCRIPT> </HEAD> <BODY> C'est tout! </BODY> </HTML>

Affichage de l'exemple 1.

Salut tout le monde! C'est tout!


Cacher le script

Les scripts peuvent-être placés dans des tags de comentaires pour être sûr que le script n'est pas affiché par d'anciens navigateurs qui ne reconnaissent pas le JavaScript. Tout le script peut-être inclus dans ces tags commentaire: <!-- Debut du cache pour les anciens browsers. // Fin du cache. -->

Definir et appeler des fonctions

Les scripts placés dans le tag SCRIPT sont évalués à la fin du chargement de la page. Ces fonctions sont sockées, mais pas éxécutées. Les fonctions, pour être éxecutées doivent être appelées par un lien dans la page.

Il est important de faire la difference entre définir une fonction et appeler une fonction. Définir une fonction ne fait que la nommer, et dire quoi faire quand cette fonction est appelée. Appeler une fonction fait executer une fonction avec ses parametres.


Exemple 2: un script avec une fonction et un commentaire.

<HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- pour cacher le script function square(i) { document.write("L'appel a donné; ", i ," à la fonction.","<BR>") return i * i } document.write("La fonction retourne ",square(5),".") // fin du cache --> </SCRIPT> </HEAD> <BODY> <BR> Fini. </BODY> Example 2 page display.


Fini.


Le tag HEAD

Generalement, vous devez definir une foncton dans la partie HEAD de la page. Comme celle-ci est chargée en premier, vous êtes sur que vos fonctions seront chargées en mémoire en premier, et qu'il n'y aura pas de lien appelant une fonction avant que celle-ci ne soit définie.

Exemple 3: un script avec deux fonctions.

<HEAD> <SCRIPT> <!--- Cacher le script des vieux browsers function bar() { document.write("<HR ALIGN='left' WIDTH=25%>") } function output(head, level, string) { document.write("<H" + level + ">" + head + "</H" + level + "><P>" + string) } // Fin du cache --> </SCRIPT> </HEAD> <BODY> <SCRIPT> <!--- Cacher le script des vieux browsers document.write(bar(),output("Faites moi grossir",3,"Rendez moi ordinaire.")) // Fin du cache --> </SCRIPT> <P> Merci. </BODY>

Affichage de l'exemple 3

Merci.

Apostrophes

Quand vous inserez dans une fonction javascript du texte à afficher, par exemple du HTML, vous devez obligatoirement encadrer tout le texte par des guillemets ("), ce qui rend impossible l'utilisation de ceux-ci pour les tags HTML. Pour contourner ce probleme, il suffit de remplacer les apostrphes du HTML par des guillemets ('). Par exemple: <SCRIPT> document.write("<img src='uneimage.gif'>") </SCRIPT>


Evenements-liens

Les applis javascript sont en trés grande majoritées appelées à la suite d'un evenement. Un evenement dépend d'une action de l'utilisateur. Par exemple, un click sur un bouton est un evenement, comme le passage de la souris sur une image ou un texte. Navigateur reconnait un certain nombre d'evenements. Vous devez utiliser des evenements liens pour declencher une fonction aprés un evenement.

Les evenemenets-lien sont intégrés aux tags HTML comme un attribut supplementaire, auquel vous assignez le nom de la fonction à executer. La syntaxe générale est:

<TAG evenement-lien="JavaScript Code"> Ou TAG est un tag HTML, et evenement-lien le nom de l'evenement lien.

Par exemple, supposez que vous ayez créé une fonction appelée Calcul. Vous pouvez la faire s'exeuter quand l'utilisateur click sur un bouton par l'evenement-lien onClick:

<INPUT TYPE="button" VALUE="Calculer" onClick="calcul(this.form)">

Vous pouvez mettre n'importe quelles instructions dans les guillemets suivant onClick. Ces instructions sont éxecutées quand l'utilisateur click sur le bouton. Si vous voulez inserer plus d'une instruction, séparez les par un point virgule (;).

En général, c'est une bonne idée de definir des fonctions pour vos evenements-lien, parceque:

Notez l'utilisation de this.form pour se réferer au formulaire courant. Le mot cléf this se refere à l'objet courant, dans l'exemple ci-dessus le boutton. La construction this.form se refere au formulaire contenant le boutton. Dans l'exemple précedent, l'evenement-lien onClick est un appel à la fonction compute() avec this.form, le formulaire courant, comme paramètre.

Les evenements sont integrables aux tags de certains objets:

Si un evenement peut s'appliquer à un tag HTML, alors vous pouvez définir un evenement-lien pour celui-ci

Beaucoup d'objets ont des procédures qui simulent un évenement. Néanmoins, ces procedures qui émulent un évenement ne déclenche pas d'évenement-lien.

Evenement se déclenche quand.. Evenement-lien
blur L'utiliateur se déplace de l'objet courant du formulaire vers un autre onBlur
click L'utilisateur click sur un element d'un formulaire ou un lien onClick
change L'utilisateur change la valeur d'un cadre ou d'une zone de texte onChange
focus L'utilisateur passe d'un objet d'un formulire à l'objet auquel l'evenement est associé onFocus
load L'utilisateur charge la page dans Netscape onLoad
mouseover L'utilisateur passe son curseur sur un lien quelconque ou sur une image onMouseOver
select L'utilisateur selectionne le contenu d'une zone de texte onSelect
submit L'utilisateur envoie le formulaire onSubmit
unload L'utilisateur quitte une page onUnload


Exemple 4: un script avec un formulaire et un attribut even,ement-lien

<HEAD> <SCRIPT LANGUAGE="JavaScript"> function compute(form) { if (confirm("Vous etes sûr?")) form.result.value = eval(form.expr.value) else alert("S'il vous plaît, revenez.") } </SCRIPT> </HEAD> <BODY> <FORM> Entrez une expression: <INPUT TYPE="text" NAME="expr" SIZE=15 > <INPUT TYPE="button" VALUE="Calculez" ONCLICK="compute(this.form)"> <BR> Resultat: <INPUT TYPE="text" NAME="result" SIZE=15 > <BR> </FORM> </BODY>

Affichage de l'exemple 4

Entrez une expression:
Result:

Exemple 5: un script avec un formulaire, un evenement-lien avec un tag BODY

<HEAD> <SCRIPT LANGUAGE="JavaScript"> <!--- cacher le scrip des vieux browsers function checkNum(str, min, max) { if (str == "") { alert("Entrez un nombre dans la zone de texte s'il vous plaît.") return false } for (var i = 0; i < str.length; i++) { var ch = str.substring(i, i + 1) if (ch < "0" || ch > "9") { alert("Essayez un nombre s'il vous plaît.") return false } } var val = parseInt(str, 10) if ((val < min) || (val > max)) { alert("Essayez un nombre entre 1 et 10.") return false } return true } function thanks() { alert("Merci pour votre aide.") } // fin du cahce pour les vieux browsers --> </SCRIPT> </HEAD> <BODY> <FORM NAME="ex5"> Veuillez inserer un petit nombre: <INPUT NAME="num" onChange="if (!checkNum(this.value, 1, 10)) {this.focus();this.select();} else {thanks()}"> </FORM> </BODY>

Affichage de l'exemple 5.

Entrez un nombre dans la zone de texte et ensuite cliquez n'importe où en dehors cette zone Suivant ce que vous avez entré, Javascript vous demandera d'entrer autre chose ou vous remerciera.

Please enter a small number:

Trucs et Astuces

Cette section decris plusieures techniques utiles de programmationde JavaScript

Mettre à jour une page

JavaScript dans Navigateur génere ses resultats de bas en haut. Une fois qu'un script a été pris en compte, on ne peut pas le mettre à jour sans recharger toute la page. Néanmoins, vous pouvez recharger une sous-fenetre dans une frame séparée.

Imprimer

Pour le moment, vous ne pouvez pas imprimer un texte généré par du JavaScript Par exemple, si vous aviez ceci dans une page:

<P>Voici du texte normal <SCRIPT>document.write("<P> et du texte généré")</SCRIPT> et que vous essayiez de l'imprimer, vous verrez seulement "Voici du texte normal", alors que sur l'ecran, les deux sont affichés.

Utiliser les apostrophes

Soyez bien sur de remplacer dans le html généré par JavaScipt les guillemets (") par des apostrophes ('). Comme tout ce qui est généré par JavaScript doit etre encadré par des guillemets, vou devez utiliser de simples apostrophes pour delimiter des arguments, par exemple:

<FORM NAME="myform"> <INPUT TYPE="button" NAME="Button1" VALUE="Ouvrir Sesame" onClick="window.open('stmtsov.htm', 'newWin', 'toolbar=no,directories=no')"> </FORM>

Definnir des Fonctions

C'est toujours une bonne idée de définir les fonctions dans la section HEAD de vos pages HTML. Comme cela, toutes les fonction seront définies avant que quoi que ce sot soit affiché. Sinon, si l'utilisateur arrete le chargement de la page au milieu, et qu'il appele une fonction qui n'est pas encore définie, il aura un mesage d'erreur.

Créer des Arrays

Un array est un groupe de valeures que vous referencez par un nom d'array et un index. Par exemple, vous pouvez avoir un array appelé emp, qui contient les noms des employés indéxés par leurs noms. Donc, emp[1] dera l'employé 1, emp[2] l'employé 2, etc...

JavaScript n'a pas de type de données explicite pour les arrays, mais à cause de l'étroite relation entre les arrays et les propriétées des objets (allez voir Les modèles d'objet JavaScript), il est facile de créer des arrays dans JavaScript. Vous pouvez définir un type d'objet array comme ceci:

function MakeArray(n) {
   this.length = n;
   for (var i = 1; i <= n; i++) { 
     this[i] = 0 }
     return this
     }
}

Ceci définie un array pour que la premiere propriété, length (avec un index de 0) represente le numero de l'élement dans l'array. Les propriétées restantes ont un entier index de un ou plus, et initialisé à 0.

Vous pouvez ensuite créer un array par un appel à nouveau avec le nom de l'array, specifiant le nombre d'element qu'il possède. Par exemple:

emp = new MakeArray(20);

Ceci crée un array appelé emp avec 20 élements, et initialise l'element à zero (0)

Populer un array

Vous pouvez populer un array simplement en assignant une valeur à un de ses elements. Par exemple: etc...

Vous pouvez aussi créer des arrays d'objets. Par exemple, supposez que vous vouliez définir un type d'objet nommé employé, comme ceci:

function Employé(empno, name, dept) {
   this.empno = empno;
   this.name = name;
   this.dept = dept;
}

Ensuite, les instructions suivantes définissent un array de ces objets:

emp = new MakeArray(3)
emp[1] = new Employee(1, "Casey Jones", "Engineering")
emp[2] = new Employee(2, "Phil Lesh", "Music")
emp[3] = new Employee(3, "August West", "Admin")

Ensuite, vous pouvez facilement afficher les objets dans cet array en utilisant la fonction show_props (définie dans la section sur les Modèles d'objet JavaScript) comme ceci:

for (var n =1; n <= 3; n++) {
   document.write(show_props(emp[n], "emp") + "
"); }