Dynamic HTML
Transcription
Dynamic HTML
Dynamic HTML Regroupement de trois éléments : le HTML les feuilles de styles, le DOM (Document Objet Model) Représentation du document HTML en une hiérarchie d'objets Pour agir sur le document, on utilise le langage ECMAscript (javascript) ECMA : European Computer Manufacturers Association Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 1 Javascript // Java « Tu as vu mon nouveau diesel à essence ? » « Qu’est-ce que vous appelez la souris, exactement ? » « J’ai écrit un script java » javascript : appellation Netscape -> ECMAscript -> langage de script, interprété Java : langage objet (Sun) (environnement de développement, machine virtuelle) Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 2 Exemple : Afficher un message HTML normal <HTML> <HEAD> <TITLE> Ma page</TITLE> </HEAD> <BODY> Apparition fenêtre <SCRIPT language="javascript"> Début du script window.alert("Hello World!"); Script Fin du script </SCRIPT> </BODY> </HTML> Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois Fin HTML 3 Affiche une boîte de dialogue Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 4 <script> … </script> <script type="text/javascript" language="javascript"> ici le code de votre script </script> Le navigateur reconnaît les balises <script> </script> n’affiche pas le texte du code placé entre ces deux balises interprète ce code et l’exécute. L'argument language décrit le langage utilisé ("JavaScript" "JavaScript1.1" "JavaScript1.2") Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 5 Dans un fichier externe Dans le fichier HTML <script type="text/javascript" language="javascript" SRC="chemin/fichier.js"> ... </script> Intérêt : simplifier la maintenance Modification du code : toutes les pages y faisant appel sont modifiées. Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 6 Dans la balise HTML avec un événement Evénement : action de l'utilisateur (exemple : clic de la souris sur un bouton -> onClick) action du navigateur (exemple : chargement de la page HTML -> onLoad) < input type="button" name="monbouton" value="Cliquez ici" onClick="alert('Bonjour')" > Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 7 Gestionnaires d'évènements disponibles Objets Fenêtre Evénements onLoad, onUnload Lien hypertexte onClick, onmouseOver, onmouseOut Elément de texte onBlur, onChange, onFocus, onSelect Elément de zone de texte onBlur, onChange, onFocus, onSelect Elément bouton onClick Case à cocher onClick Bouton Radio onClick Liste de sélection onBlur, onChange, onFocus Bouton Submit onClick Bouton Reset onClick Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 8 Objets du navigateur fenêtre : objet window document : objet window.document formulaire : objet window.document.form • Pour désigner les boutons radio : window.document.form.radio[0] window.document.form.radio[1] Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 9 Méthodes des objets Pour chaque objet : méthodes prédéfinies. Méthode : Fonction ou procédure permettant des actions sur l’ objet. Appeler d’une méthode : nom_objet.nom_methode(arguments) Exemple : document.write("<p>Il fait beau</p>"); objet méthode Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois argument 10 Exemple : Méthodes de window window.alert("ceci est une alerte"); window.prompt("ceci est un prompt", "valeur par defaut"); window.confirm("ceci est une confirmation ?") Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 11 Objets prédéfinis du DOM Modèle arborescent ECMAscript : Document Object Model. window document forms : tableau des formulaires du document éléments du formulaire (boutons, listes déroulantes, …) images : tableau des images de la page history location screen frames parent self top Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 12 Appel de fonction Définition de la fonction function nom_de_la_fonction (paramètre_1, paramètre_2...) { liste d’instructions; } Appel de la fonction nom_de_la_Fonction() ; Nom_de_la_fonction(p1,p2) ; Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 13 Exemple <html> <head> <title> Appel d’une fonction </title> <script language="javascript"> function affiche(vartexte) { méthode window.alert() alert(vartexte); window facultatif } </script> </head> <body> <a href="#" onClick="affiche('Vous quittez notre site')"> Lien vers ... </a> </body> </html> Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 14 Déclaration de variables Peut se faire de deux façons : explicite avec le mot clé var : on indique de façon rigoureuse qu'il s'agit d'une variable var chaine = "bonjour" implicite sans le mot clé var : le navigateur détermine seul qu'il s'agit d'une déclaration de variable chaine = "bonjour" Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 15 Types de données En javascript, il existe quatre types de données : des nombres : entiers ou réels des chaînes de caractères (string) : une suite de caractères (mot, phrase...) des booléens : variables à deux états true : si le résultat est vrai false : si le résultat est faux type null : absence de données (par exemple tester si champ formulaire vide) Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 16 Rigueur des types de données Dans le même script : var mavariable=123; var mavariable="Bonjour"; DANGER de confusion de type Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 17 Tests : if (similaire au langage C) if (condition réalisée) {liste d'instructions1} else {liste d'instructions2} var age = window.prompt("Veuillez saisir votre age :"); if (age >= 18) { window.alert("Vous êtes majeur."); } else { window.alert("Vous êtes mineur !"); } Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 18 Boucles : similaire au C while (condition est vraie) { liste d'instructions; } for (depart ; condition poursuite ; incrementation) { liste d'instructions; } do { liste d'instructions } while (condition est vraie); Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 19 Quelques « classiques » Changement d’image au survol de souris Ouverture de fenêtre « pop-up » Test dans un formulaire adresse e-mail obligatoire adresse e-mail contenant @ et . etc. Copier : non / S’inspirer : oui Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 20 Changement d'images <HTML> <HEAD><title>Changement d’images</title> <script language="javascript1.1"> function lightUp() { document.images["homeButton"].src="off.gif" } function dimDown() { document.images["homeButton"].src="on.gif" } </script> </HEAD> <BODY> <a HREF="#" onmouseOver="lightUp();" onmouseOut="dimDown();"> <IMG SRC="on.gif" name="homeButton" width=100 height=50 border=0> </a> Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 21 Fenêtres [window.]open( "URL" , "nom_fenêtre" , "caractéristiques_fenêtre" ) URL : adresse de la page HTML que l'on désire afficher dans la nouvelle fenêtre. caractéristiques_de_la _fenêtre : liste des caractéristiques de la fenêtre notées à la suite, séparées par des virgules, sans espaces ni passage à la ligne. Il n’est pas obligatoire de les préciser toutes. Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 22 Fenêtres Caractéristique Description toolbar=yes / no Affichage de la barre d'outils location=yes / non Affichage de champ d'adresse (ou localisation) directories=yes / no Affichage des boutons d'accès rapide status=yes / no Affichage de la barre d'état menubar=yes / no Affichage de la barre de menus scrollbars=yes / no Affichage des barres de défilement. resizable=yes / no Dimensions de la fenêtre modifiables width=x en pixels Largeur de la fenêtre en pixels height=y en pixels Hauteur de la fenêtre en pixels Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 23 Objets des formulaires Tableau de tous les formulaires : objet forms. Adressage associatif : document.forms["nom_Formulaire"]. Indispensable de nommer les formulaires Chaque formulaire form contient un tableau de tous les éléments (input, textarea, ...) du formulaire : objet elements. Adressage associatif : document.nom_Form.elements ["nom_Element"]. Grégoire Maréchal – Lycée Voillaume – Aulnay-sous-bois 24