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