Cours Javascript
Cours Javascript
DOM / JavaScript
08:16:59 1
DOM = Document Object Model
<table>
<tbody>
<tr><td>Shady Grove</td>
<td>Aeolian</td>
</tr>
<tr><td>Over the River, Charlie</td>
<td>Dorian</td>
</tr>
</tbody>
</table>
<script type="text/javascript"
language="JavaScript">
<!--
Masquer le script aux navigateurs non
script
compatibles avec JavaScript
// -->
</script>
<script type="text/javascript"
language="JavaScript" src="URI">
</script>
<html>
<head>
<title>Ma première page Web</title>
</head>
<body>
<script type="text/javascript"
language="JavaScript">
<!--
[Link]("Salut !") ;
// -->
</script>
</body>
</html>
if (condition)
{
instructions ;
}
[ else
{
instructions ;
} ]
switch (expression)
{
case étiquette :
instructions ;
break ;
case étiquette :
instructions ;
break ;
default :
instructions ;
}
while (condition)
{
instructions ;
}
do
{
instructions ;
}
while (condition) ;
// Commentaire ligne
/* Commentaire multi-lignes */
ma_fonction(12) ; // Appel
• window
• alert(message)
// Message d’avertissement
• confirm(message)
// Message de confirmation : retourne true ou false
• prompt(message, valeur_par_défaut)
// Boîte de saisie : retourne la chaîne saisie
• document
• write(message)
// Ecrire dans le document
• writeln(message)
// Ecrire dans le document (retour à la ligne)
• Propriétés
• length
• …
• Méthodes
• charAt(index)
• charCodeAt(index)
• concat(chaine2, chaine3, …)
• fromCharCode(code1, code2, …)
• indexOf(aiguille[, index])
• lastIndexOf(aiguille[, index])
• match(expr_reg)
• Méthodes
• replace(expr_reg, nouvelle_chaine)
• search(expr_reg)
• slice(debut[, fin])
• split(separateur[, limite])
• substr(debut[, taille])
• substring(debut, fin)
• toLowerCase()
• toUpperCase()
• Opérateurs
• +
• Propriétés
• E, LN10, LN2, LOG10E, LOG2E, PI, SQRT1_2, SQRT2
• Méthodes
• abs(val)
• acos(val), cos(val), …
• exp(val), log(val)
• floor(val), round(val), ceil(val)
• max(val1, val2), min(val1, val2)
• pow(val, puiss), sqrt(val)
• random() // 0 1
[Link](115.04+15) ;
130.04000000000002 (Euh ?...)
[Link]([Link]) ;
3.141592653589793
[Link]([Link](-12.34)) ;
12.34
[Link]([Link](12.54)) ;
12
[Link]([Link](12.54)) ;
13
[Link]([Link](12.54)) ;
13
[Link]([Link]()) ;
0.394555831655689
• Propriétés
• Infinity, NaN, undefined
• Fonctions
• eval(chaine)
• isFinite(nombre)
• isNaN(objet)
• parseFloat(chaine)
• parseInt(chaine)
• escape(chaine)
• unescape(chaine)
[Link](eval("[Link](3+2, 2)")) ;
25
[Link](isFinite([Link](0))) ;
false
[Link](isNaN("abcd")) ;
true
[Link]("12.34"+2) ;
12.342
[Link](parseFloat("12.34")+2) ;
14.34
[Link](escape("Bon anniversaire")) ;
Bon%20anniversaire
[Link](unescape("Bon%20anniversaire")) ;
Bon anniversaire
• Objet Array
• Déclaration
var tab1 = new Array(taille) ;
var tab2 = new Array(1, "a", 9, …) ;
index 0 1 2 …
• Utilisation
[Link](tab2[0]) ; // 1
tab2[2] = 6 // 6 remplace 9
• Accroissement automatique de la taille
var tab1 = new Array(2) ;
tab1[200] = 5 ;
• Parcours
var tab2 = new Array(1, "a", 9) ;
tab2[200] = 12 ;
for (i in tab2)
[Link]("tab2[" + i + "] = "
+ tab2[i]) ;
// tab2[0] = 1
// tab2[1] = a
// tab2[2] = 9
// tab2[200] = 12
• Propriétés
• length
• …
• Méthodes
• concat(tab2, tab3, …)
• join(sépar)
• pop()
• push(val1, val2, …)
• shift()
• unshift(val1, val2, …)
• slice(début[, fin])
<html><head><title>Contrôle</title>
<script type="text/javascript">
function verif() {
if ([Link] != '')
return [Link]('Envoyer ?') ;
return false ; }
</script></head><body>
<form name="formu" action="URI" method="GET"
onSubmit="return verif() ;">
<input type="text" name="txt">
<input type="submit" value="Envoyer">
</form></body></html>
• Propriétés
• action
• elements
• encoding
• length
• method
• name
• target
• Méthodes
• reset()
• submit()
• Text
• Textarea
• Hidden
• Password
• CheckBox
• Radio (/!\ tableau de /!\)
• Submit / Reset
• Select
• Option
• FileUpload
<script type="text/javascript">
function verif(f)
{
[Link]([Link]) ;
[Link]([Link]) ;
[Link]([Link][[Link]].text) ;
[Link]([Link][[Link]].value) ;
[Link]([Link][0].checked) ;
[Link]([Link]) ;
return false ;
}
</script>
• Modèles
• (x) : x et mémorise
• {n} : n fois
• {n,} : au moins n fois
• {n,m} : de n à m fois
• [xyz] : 1 élément de la liste
• [a-z] : 1 élément de la série
• [^xyz] : 1 élément n'étant pas dans la liste
• [^a-z] : 1 élément n'étant pas dans la série
• \b : frontière de mot
• \B : non frontière de mot
• Modèles
• \d = [0-9]: chiffre
• \D = [^0-9]: non chiffre
• \n : retour à la ligne
• \s : séparateur de mot
• \S : non séparateur de mot
• \t : tabulation
• \w = [A-Za-z0-9_] : 1 caractère alphanumérique
• Méthodes
• test(chaine)
• Méthodes
• Constructeur
• getDay(), attention de 0 (dimanche) à 6 (samedi)…
• getDate() / setDate()
• getMonth() / setMonth(), attention de 0 à 11…
• getHours()/ setHours()
• getMinutes() / setMinutes()
• getTime() / setTime()
• getYear() / setYear() / getFullYear() / setFullYear()
• parse()
[Link]([Link]()) ;
Sat Nov 25 1995 03:24:00 GMT+0100
[Link](10) ;
95
[Link](birthday) ;
[Link]([Link]()) ;
Mon Nov 25 1996 03:24:00 GMT+0100
[Link](96) ;
1996
[Link](birthday) ;
[Link]([Link]()) ;
Thu Nov 25 2010 03:24:00 GMT+0100
[Link](2010) ;
807919200000
[Link](birthday) ;
[Link]([Link]("Aug 9, 1995")) ;
• Propriétés
• complete
• width
• height
• name
• src
• …
• Méthodes
• constructeur
• Image()
• Image(largeur, hauteur)
<script type="text/javascript">
// Une image
rouge = new Image(100, 100) ;
[Link] = '[Link]' ; // Préchargement
• Opera
• Widgets permettent d’obtenir des outils de développement
• Safari
• Version allégée de Firebug
• Google Chrome
• Outils de développement intégrés
• innerHTML
• Construire une chaîne de caractères contenant du code HTML
• Affecter cette chaîne de caractères à l’attribut innerHTML d’un élément de
la page
• Le navigateur interprète le contenu de la chaîne de caractères affectée pour
modifier la structure du document
• DOM « pur »
• Construire de nouveaux éléments logiques du document avec des méthodes
JS
• Construire les liens de parenté entre ces éléments
<a href='URI_cible'
onMouseOver="code_javascript1"
onMouseOut="code_javascript2">Support</a>
<a href='URI_cible'
onMouseOver="a=1"
onMouseOut="b=2">Support</a>
<a href='URI_cible'
onMouseOver="allumer()"
onMouseOut="eteindre()">Support</a>
// -->
Exemple
[Link]()+'.'
+[Link]() ; }
</script>
</head> <body>
<form name='f'>
Nom <input type='text' name='nom' onKeyUp='maj()'><br>
Prenom <input type='text' name='prenom' onKeyUp='maj()'><br>
Login <input type='text' name='mail' disabled>
</form>
</body> </html>
<body>
<a href='#'
onMouseOver="change('image1', '[Link]')"
onMouseOut="change('image1', '[Link]')">
<img name='image1' width='100' height='100'
src='[Link]' alt='disque'></a>
</body>
</html>
Exemple
onMouseOut="change('image1', '[Link]')">Disque 1</a>
<li><a href='#' onMouseOver="change('image2', '[Link]')"
onMouseOut="change('image2', '[Link]')">Disque 2</a>
<li><a href='#' onMouseOver="change('image3', '[Link]')"
onMouseOut="change('image3', '[Link]')">Disque 3</a>
</ul>
<img name='image1' width='100' height='100' src='[Link]'
alt='disque'>
<img name='image2' width='100' height='100' src='[Link]'
alt='disque'>
<img name='image3' width='100' height='100' src='[Link]'
alt='disque'>
</body> </html>
// Détection du navigateur
// Netscape 4
var nava = [Link] ? true : false ;
// IE, Firefox, Netscape 6, Opera
var dom = [Link] ? true : false ;
// IE, Opera
var iex = [Link] ? true : false ;
// Récupérer un objet identifié
function getobj(id)
{
var obj ;
if (nava) { obj=[Link] }
else if (dom) { obj=[Link](id) }
else if (iex) { obj=id }
return obj ;
}
Exemple
<script type='text/javascript' language='JavaScript'>
<!-- function cache_cache(id) {
var obj=getobj(id) ;
if ([Link] == 'visible') [Link] = 'invisible' ;
else [Link] = 'visible' ; } // --> </script>
<title>Cache-cache</title> </head>
<body>
<div class='cache_cache'>
<a href="javascript:cache_cache('div1')">montrer / cacher</a>
</div>
<div id='div1' class='visible'> Texte Texte Texte Texte </div>
</body> </html>
Exemple
<script type='text/javascript' language='JavaScript'> <!--
function cache_cache(lien, id) { var obj=getobj(id) ;
if ([Link] == 'visible')
{ [Link] = 'monter' ; [Link]='invisible' ; }
else
{ [Link] = 'cacher' ; [Link]='visible' ; }
} // --> </script>
<title>Cache-cache</title> </head> <body>
<div class='cache_cache'>
<a href="#" onClick="cache_cache(this, 'div1')">cacher</a> </div>
<div id='div1' class='visible'> Texte Texte Texte Texte </div>
</body> </html>