<script type="text/javascript"> ... code javascript </script>
<script type="text/javascript" src="monSource.js"></script>
<a href="javascript:alert('bonjour')">...</a>
<button onclick="alert('click !')">clickez moi</button>
Ce paragraphe sera en rouge sur fond jaune
<p id='par1'>Ce paragraphe sera en rouge sur fond jaune </p> <script type="text/javascript"> document.getElementById('par1').style.backgroundColor='yellow'; document.getElementById('par1').style.color='red'; </script>et
Ce paragraphe ne va pas changer de couleur
<script type="text/javascript"> document.getElementById('par2').style.backgroundColor='yellow'; document.getElementById('par2').style.color='red'; </script> <p id='par2'>Ce paragraphe ne va pas changer de couleur </p>
Ce paragraphe sera aussi en rouge sur fond jaune
<script type="text/javascript"> function changerCouleurPar3() { document.getElementById('par3').style.backgroundColor='yellow'; document.getElementById('par3').style.color='red'; } </script> <p id='par3'>Ce paragraphe sera aussi en rouge sur fond jaune </p> <script type="text/javascript"> changerCouleurPar3(); </script>
<script type="text/javascript"> a= 'salut'; a= 3; a= a + 2; </script> <button onclick="alert('valeur de a '+ a)">montrer a</button>
var
pour déclarer explicitement les variables, en particulier dans le corps des fonctions (pour être sûr d'en faire une fonction locale).
var a= 3;
<script type="text/javascript"> function somme(a,b) { return a+b; } </script> <button onclick="alert(somme(3,2))"> montrer somme</button>
Attention : les fonctions sont uniquement identifiées par leur nom.
length
charAt(pos)
split(separateur)
: renvoie le tableau obtenu en découpant la chaîne.
s= "un,deux,trois"; t= s.split(",");
tab= new Array(); tab[0]= 2; tab[1]= 3; s= 0; for (i= 0; i < tab.length; i++) { s+= tab[i]; }
tab= new Array("un", "deux", "trois");
tab= new Array(); tab["un"]= "deux"; // Déclaration en ligne d'un tableau associatif. tab= {"java": "langage orienté objet", "lisp" : "language fonctionnel"};
Il existe une nouvelle structure : for(.... in...)
, qui permet de parcourir les indices d'un tableau ou les propriétés d'un objet.
function somme(tab) { result= 0; for (x in tab) { result= result+ tab[x]; } return result; }
switch
a la même syntaxe qu'en java, mais fonctionne sur tout type de valeur.
new
.
this.NOM_PROPRIETE
function
function Etudiant(id,nom,prenom) { this.id= id; this.nom= nom; this.prenom= prenom; this.getRepresentation= function() {return "etudiant "+ prenom + " " + nom;}; } turing= new Etudiant(1, "Turing", "Alan"); s= turing.getRepresentation();
turing.age= 20;
// Ajouter une propriété "age", de valeur par défaut "18" à la classe Etudiant : Etudiant.prototype.age= 18;
entiersRegexp= /[0-9]+/;
ou en passant une chaîne de caractères au constructeur Regexp
.
symbole | sens | exemple |
---|---|---|
. | n'importe quel caractère | /.../ = 3 caractères quelconques |
lettre, caractère "normal" | le caractère en question | /abc/ = un "a", puis un "b", puis un "c" |
\ | protège le caractère suivant | /\.txt/ = "point" txt |
* | 0 ou n fois le groupe précécent | Aa*\.txt/ = "A", 0 ou n fois 'a', puis ".txt" |
+ | 1 ou n fois le groupe précécent | Aa+\.txt/ = "A", 1 ou n fois 'a', puis ".txt" |
(...) | groupent | /(abc)*.txt/ = "abc" 0 ou n fois, puis ".txt" |
| | "ou" | /gif|jpg/ = "gif" ou "jpg" |
[...] | un caractère dans la liste | /[a-z]+/ = une suite non vide de lettres minuscules |
[^...] | un caractère qui n'est pas dans la liste | /[^a-z]+/ = une suite non vide de caractères, sauf des minuscules |
\d | un chiffre | /\d+/ = n'importe quel entier |
\w | lettre, chiffre, ou "_" | /[A-Za-z]\w+/ = identifiant au sens java |
\s | un espacement (au sens large) | |
\S | pas un espacement | |
$ | début de texte | |
^ | fin de texte | /^\d+$/ = reconnaît les chaînes formées uniquement de chiffres. |
// Reconnaissance: estEntier= s.search(/^\d+$/); if (estEntier == 0) { // On a reconnu un entier } else { // estEntier vaut -1 ... }
<form name="personneForm"> nom : <input type="text" name="nom"> prénom : <input type="text" name="prenom"> initiale : <input type="text" name="initiale"> <input type="submit"> </form>
document.personneForm
.
document.personneForm.prenom
document.personneForm.prenom.value
onsubmit
de form
:
<form name="personneForm" onsubmit="return verifPersonne()">Si l'attribut commence par "return", alors le formulaire n'est envoyé au serveur que si la valeur renvoyée par la fonction javascript est "true". Exemple :
function verifPersonne() { return document.personneForm.prenom.value.charAt(0) == document.personneForm.initiale.value.charAt(0); }
<form name="onBlurTest"> <input name="champBlur" onblur="testEntier(document.onBlurTest.champBlur)"> <br><input > <br><input type="submit"> </form> <script type="text/javascript"> function testEntier(champ) { var s= champ.value; // supprime tout ce qui n'est pas chiffre. // le 'g' demande à la regexp de fonctionner plusieurs fois. champ.value= s.replace(/[^0-9]/g,''); } </script>
onchange
est déclenché quand le focus est perdu et que la valeur a changé.
Il est donc appelé moins souvent.