• Aucun résultat trouvé

[PDF] Apprendre JavaScript et DHTML

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Apprendre JavaScript et DHTML"

Copied!
36
0
0

Texte intégral

(1)

Programmation Internet

DHTML 

avec

Javascript

Ivan Madjarov , MCF, IUT‐R&T, 2002‐2010

DHTML ‐

HTML dynamique

†Le DHTML avant toute chose n'est pas un standard!  C’est une appellation qui désigne un rassemblement de  techniques. techniques. †Le DHTML est une combinaison de feuilles de styles

(CSS) de scripts (JavaScript, JScript, VBScript, PHP) et 

d'objets (Le DOM).

(2)

Javascript

‐ Le langage

Le modèle Client‐Serveur par rapport aux scripts 

et les langages interprétés

1. Côté Client:  XHTM/CSS et Javascript 2. Côté Serveur:  PHP/ASP/JSP

Programmation Internet IvMad, 2002-2010 3

Javascript

‐ Le langage

†

JavaScript

est un langage de programmation lié 

et introduit dans le code 

XHTML

(HTML). 

†

C'est le

navigateur

Web du côté client qui

†

C est le 

navigateur

Web du côté client qui 

interprète le code 

XHTML

et le script 

JavaScript.

L'interprétation dépend du type de navigateur (IE, 

Firefox ou autre).

†

JavaScript 

est un langage 

objet

et 

événementiel

„ L dé l é d bj l

Programmation Internet IvMad, 2002-2010 4

„ Le développeur peut créer des objetssur la page,  avec des propriétéset des méthodeset leur associer  des actions en fonction d'événements déclenchés  par le visiteur (passage de souris, clic, saisie clavier) 

(3)

Javascript

‐ Intégrer

Intégrer du code 

JavaScript

dans une page 

XHTML

− dans le corps de la page <body>, ou dans la partie  entête<head> entête <head> − <script language="JavaScript"> … </script> − dans un événement d'un objet de la page. − onClick="alert('Vous avez cliqué')" − faire appel à un script quand l'utilisateur clique sur 

Programmation Internet IvMad, 2002-2010 5

un lien:  <A HREF="javascript:ma_fonction()">Cliquez ici</A> − Depuis un fichier externe : <SCRIPT LANGUAGE =  "Javascript" SRC="url/fichier.js"> </SCRIPT>

Javascript

‐ Intégrer

<HTML> <HEAD> <TITLE> Voici une page contenant du Javascript </TITLE> </HEAD> <BODY> <SCRIPT language="Javascript"> <!‐‐ alert("Voici un message d\'alerte!"); // ‐‐>

Programmation Internet IvMad, 2002-2010 6

//

</SCRIPT>

</BODY>

(4)

Javascript

‐ Fonction

<HTML> <HEAD> <SCRIPT language="Javascript"> <! <!‐‐ function Chargement() { alert('Bienvenue sur le site'); //‐‐> </SCRIPT> </HEAD>

Programmation Internet IvMad, 2002-2010 7

</HEAD> <BODY onLoad="Chargement();" >  <p>Texte HTML dans le corps de la page Web...</p>  </BODY> </HTML> (Test)

Javascript

‐ Variables

Instruction 

var

pour la déclaration. Toute nouvelle 

variable doit être initialisée ce qui 

détermine son type

yp

.

varprenom_visiteur = "Marcel";   // type string varnom_visiteur = "Dupond";       // type string varage_visiteur = 29;      // type numérique

Une variable déjà déclarée s'utilise ensuite comme 

d’habitude :

Programmation Internet IvMad, 2002-2010 8

d habitude :

var accueil="Bonjour " + prenom_visiteur + " " +  nom_visiteur; 

(5)

Javascript

– Notion d’Objets

† Imaginez un arbre dans un jardin comportant une  branche sur laquelle se trouve un nid.   La hiérarchie d'objets est définie comme ceci : † jardin  „ arbre † branche  „ feuille  „ nid 

Programmation Internet IvMad, 2002-2010 9

ƒ largeur: 20  ƒ couleur: jaune  ƒ hauteur: 4 

Javascript

– Notion d’Objets

Notation † Le nid sur l'arbre est donc désigné comme suit :  jardin.arbre.branche.nid j † Pour changer la couleur du nid :  jardin.arbre.branche.nid.couleur = vert; Les objets du navigateur † L'objet le plus grand est l'objet fenêtre (window)  † Dans la fenêtre s'affiche une page (document )

Programmation Internet IvMad, 2002-2010 10

† Dans la fenêtre s affiche une page (document ) † Cette page peut contenir plusieurs objets, comme 

des formulaires, des images, etc. 

(6)

Javascript

‐ Objets

†

La déclaration se fait avec 

var

.

†

Pour créer un 

objet

, il faut utiliser le mot‐clé 

new

suivi du type d'objet

new

suivi du type d objet.

† Le respect des majuscules/minuscule est obligatoire.

var datejour = new Date();

var unedate = new Date(a,  m,  j,  h,  m, s);

„ Cela correspond à la création d'un type objet et 

Programmation Internet IvMad, 2002-2010 11

donne accès aux méthodes et propriétés prédéfinies var a = datejour.getDay();    // le jour de la semaine (Txt)

Javascript

‐ Objets

<HTML><HEAD> <TITLE> Voici une page contenant du Javascript</TITLE> </HEAD> <BODY> <SCRIPT language="Javascript"> <!‐‐ var T = new Array ( "dimanche", "lundi",  "mardi", "mercredi",  "jeudi", "vendredi", "samedi" ); var dj = new Date();

Programmation Internet IvMad, 2002-2010 12

j ();

alert("Le jour de la semaine est "+T[dj.getDay()]); // ‐‐>

</SCRIPT>

(7)

Javascript

‐ Tableaux

† Un tableau, en Javascript, est une variable pouvant  contenir plusieurs données indépendantes, indexées  par un numéro, appelé indice, qui assure l'accès aux  données. 

† Tableaux associatifs

† indices personnalisés pour indexer les valeurs du Indice 0 1 2 3

Données donnée 1 donnée 2 donnée 3 donnée 4

Programmation Internet IvMad, 2002-2010 13

† indices personnalisés pour indexer les valeurs du  tableau.

Indice "Paul" "André" "Marie" "Jean"

Données 1000 500 1200 4500

Javascript

‐ Tableaux

†

En JavaScript, les tableaux sont des objets:

var T = new Array(10);

†

Le premier élément est indexé à

0

†

Le premier élément est indexé à 

0

.

†

Il est possible de déclarer un tableau sans 

dimension fixe. La taille du tableau s'adapte en 

fonction du contenu. 

†

Pour accéder aux éléments du tableau:

Programmation Internet IvMad, 2002-2010 14

T[0] = 10;  T[9] = 5;  T[2] = "Toto";

†

Des propriétés associées à l'objet : 

T.length

(8)

Javascript

‐ Fonction

Les fonctions et leurs instructions sont déclarées et 

codées dans 

l'entête de la page 

et peuvent être 

appelées ensuite dans le corps de la page. 

pp

p

p g

†

function Nom (argument1, argument2, ...) 

{ liste d'instructions } † Nom_De_La_Fonction();

† Une variable déclarée dans la fonction (non  précédée du mot clévar) sera globale et accessible

Programmation Internet IvMad, 2002-2010 15

précédée du mot‐clé var) sera globale et accessible  après exécution de la fonction 

† Une variable déclarée avec le mot‐clé var sera  locale, accessible uniquement dans la fonction.

Javascript ‐ Instruction

Le test conditionnel: if (condition) { … } else { … } Les boucles: Les boucles: For (initialisation; condition; opération) { // Vos instructions  } while (condition) {

// Les instructions de la boucle

Programmation Internet IvMad, 2002-2010 16

// Les instructions de la boucle }

Un commentaire : // commentaire sur une ligne /* des commentaires sur plusieurs lignes */

(9)

Javascript

‐ Méthode

† Une méthodeest une fonction associée à un objet † Appel d'une méthode: 

† window.objet1.objet2.methode();

window étant l'objet de base du navigateur † Exemple:

† une pageHTML, elle est composée d'un objet appelé 

document

† A l'objet documentest associée une méthode 

write(liste de paramètres). Elle permet de modifier

Programmation Internet IvMad, 2002-2010 17

write(liste de paramètres). Elle permet de modifier  de façon dynamique le contenu d'une page HTML. 

† Appel:window.document.write("bonjour");

† La méthode writeln()ajoute un retour chariot à la fin.

Javascript

‐ Objet

Le mot‐clé 

this

† Lorsqu'on fait appel à une fonction à partir d'un  objet (formulaire) le mot clé this fait référence à objet (formulaire), le mot clé this fait référence à  l'objet en cours et se substitue à l'appel complet:  window.objet1.objet2... ainsi lorsque l'on passe 

l'objet en cours en paramètre d'une fonction, il  suffit de taper nom_de_la_fonction(this) pour  pouvoir manipuler cet objet à partir de la fonction. 

Programmation Internet IvMad, 2002-2010 18

† Pour manipuler les propriétés de l'objet il suffira de  taper this.propriete(où proprietereprésente le nom  de la propriété). 

(10)

JavaScript – Objets prédéfinis

Les chaînes de caractères

La déclaration

var ch1="Bonjour"; var ch1= Bonjour ;

Les opérations:

Concaténation: var chaine1="Vive le "; var chaine2="JavaScript";

Programmation Internet IvMad, 2002-2010 19

var chaine=chaine1+chaine2;

La variable chainecontient après cette concaténation

"Vive le JavaScript".

JavaScript

‐ Les chaînes de caractères

o

La longueur d'une chaîne

• Une chaîne de caractères en JavaScript est un objet  stringgsur lequel s'appliquent des propriétés et des q pp q p p méthodes

• La propriété lengthindique le nombre de caractères  de la chaîne 

• var chaine="azerty";  6 <‐chaine.length

o

Récupérer le n

ième

caractère

Programmation

Internet IvMad, 2005-2008 20

p

• La méthode charAt(n)récupère le caractère n: var  chaine="azerty"; 

"z" <‐ chaine.charAt(1)

(11)

JavaScript

Les chaînes de caractères

MAJUSCULES / minuscules

var chaine="Ceci est un texte"; var maj=chaine.toUpperCase(); var min=chaine.toLowerCase();

Une sous‐chaîne dans une chaîne

var domaine = "www.javascript.com"; var extension = domaine.substring(  domaine.lastIndexOf(".") ); b h î à d l' d Programmation Internet IvMad, 2005-2008 21 substringextrait une souschaîne à partir de l'indice  retournée par lastIndexOfqui retrouve la dernière  occurrence de souschaine 

Programmation Internet IvMad, 2002-2010 21

JavaScript

L'objet String

Programmation

Internet IvMad, 2005-2008 22

(12)

JavaScript

L'objet String

Programmation

Internet IvMad, 2005-2008 23

Programmation Internet IvMad, 2002-2010 23

JavaScript

Conversions

†

Les fonctions de conversion

• transformer une chaîne en un entier ou un réel:  var chaîne = "3.14";;

var entier = parseInt(chaîne); var reel = parseFloat(chaîne); 

†

Est‐ce un nombre

• Pour détecter que chaînea le format d'un 

nombre, on applique la fonction isNaN(valeur) qui 

Programmation Internet IvMad, 2005-2008 24 pp q ( )q renvoie : ‐true si valeur n'est pas un nombre ‐falsesi valeur est un nombre

(13)

JavaScript

L'objet Math

† Utilisation:

x = Math.propriété;  x = Math.méthode(paramètre); Méthode/Param Valeur Méthode/paramp

E constante d'Euler sqrt() Racine carrée LN2 logarithme naturel de  2 exp() valeur exponentielle LN10 logarithme naturel de  10 max() le plus grand de deux  chiffres

PI constante PI min() le plus petit de deux  hiff

Programmation

Internet IvMad, 2005-2008 25

Programmation Internet IvMad, 2002-2010 25

chiffres

abs()  valeur positive pow() puissance exposant cos() cosinus random() 0 ou 1 aléatoire sin() sinus round() arrondi d'un nombre

Javascript

et les Maths

La plupart des fonctions de base mathématiques sont  des méthodes de l'objet Math:

Math.abs(a) Retourne la valeur absolue de a

Math.round(a) Retourne l'entier arrondi le plus proche de a

Math.ceil(a) Retourne l'entier immédiatement supérieur (ou égal) à a

Math.floor(a) Retourne l'entier immédiatement inférieur (ou égal) à a

Math.sqrt(a) Retourne la racine carrée de a

Math.log(a) Retourne le logarithme de a

Math.ln(a) Retourne le logarithme népérien de a

Math.exp(a) Retourne l'exponentielle de a

Programmation Internet IvMad, 2002-2010 26

Math.pow(a,b) Retourne a à la puissance b

Math.min(a,b) Retourne le plus petit des paramètres a ou b

(14)

Un tableau HTML en JavaScript

<SCRIPT language=javascript>

document.write("<TABLE border=1><TR>"); for (var i=0; i<5; i++) {

for (var i=0; i<5; i++) {

document.write("<TD>"+Math.random()+"</TD>"); }

document.write("</TR></TABLE>"); </SCRIPT>

Programmation Internet IvMad, 2002-2010 27

Ce script commence par initialiser la table.

La boucle de 6 itérations crée 6 cellules de tableaux et  affiche à l'intérieur un nombre aléatoire.

Le script clot la table en affichant la balise </TABLE>

Javascript

les boîtes de dialogue

† La méthode alert()permet d'afficher dans une boîte  composée d'une fenêtreet d'un bouton OK untexte fournit en  paramètre. Exemple.

† La méthode confirm()est similaire à la méthode alert(), si ce 

Programmation Internet IvMad, 2002-2010 28

f () ()

n'est qu'elle permet un choix entre "OK" et "Annuler". Lorsque  l'utilisateur appuie sur "OK" la méthode renvoie la valeur true.  Elle renvoie falsedans le cas contraire... Exemple.

(15)

Javascript

les boîtes de dialogue

† La méthode prompt()

† La méthode promptfournit un moyen simple de  récupérer une information provenant de

récupérer une information provenant de  l'utilisateur. 

† La méthode prompt()requiert deux arguments : 

„ le texte d'invite 

„ Le texte par défaut dans le champ de saisie

Programmation Internet IvMad, 2002-2010 29

Javascript

Formulaires

Les éléments de formulaire sont des objets JavaScript.  Soit le formulaire XHTML: <FORM name="general“> <FORM name= general > <INPUT type="text" name="champ1" value="Valeur initiale"> </FORM>  Accéder au formulaire:

Le formulaireest un élément de l'objet document documentforms["general"]

Programmation Internet IvMad, 2002-2010 30

document.forms[ general ]

document.forms[0]

document.general

(16)

Javascript

Formulaires

Accéder à un élément: document.forms["general"].elements["champ1"] document.forms["general"].elements[0] document.forms["general"].champ1 "elements"est le tableau de tous les éléments du  formulaire.  On peut accéder à un élément par : − son nom, − son indice

Programmation Internet IvMad, 2002-2010 31

son indice, 

− son nom.

Utilisez le nomdes éléments, plutôt que les indices. Les noms  sont indépendants du formulaire.

Javascript

Manipuler des Formulaires

Manipuler les propriétés d'un élément † Pour placer dans la zone de texte le mot 

"NOUVEAU", il faut juste écrire :NOUVEAU , il faut juste écrire :

† document.forms["general"].elements["champ1"].value = "NOUVEAU"

Appeler une méthode sur un élément

† Pour donner le focus à un champ texte il faut 

l l éth d f () t élé t

Programmation Internet IvMad, 2002-2010 32

appeler la méthode focus() sur cet élément. † document.forms["general"].elements["champ1"].focus()

(17)

Formulaires ‐

onClick

Intégrer du JavaScript dans un événement

† L'événement le plus classique est le clic sur un  bouton appelé onClick

<FORM name="changer">

<INPUT type="text" name="zonetexte" value="Valeur initiale"><br/>

<INPUT type="button" value="Changer la zone de texte" onClick = '

d t f [" h "] l t [" t t "] l

Programmation Internet IvMad, 2002-2010 33

document.forms["changer"].elements["zonetexte"].value = "NOUVEAU" '>

</FORM>

[Exécuter]

Formulaires ‐

alert

Au bouton l'événement onClickest rajouté qui reçoit le  code JavaScript à exécuter lors du clic sur le bouton.

Le code JavaScript doit se mettre entre "ou entre '. Il  faut faire très attention de les alterner correctement! onClick='alert("Bonjour")'>

ou

Programmation Internet IvMad, 2002-2010 34

ou

(18)

Formulaires ‐

this

L'objet thisreprésente l'objet JavaScript en cours.

<FORM>

<INPUT type="text" name="zonedetexte" yp value="Valeur initiale">

<INPUT type="button" value="Changer le contenu" onClick=' this.form.zonedetexte.value="NOUVEAU" '> </FORM>

Programmation Internet IvMad, 2002-2010 35

Formulaires ‐

input

Les zones de texte <input>

La principale action sur une zone de texte est de  manipuler son contenu.

manipuler son contenu.

Un formulaire "monform" possède un champ texte  "monchamp". 

On accède au contenu du champ par :

document.forms["monform"].elements["monchamp"].value Il faut ajouter la propriété valuepour accéder au

Programmation Internet IvMad, 2002-2010 36

Il faut ajouter la propriété .value pour accéder au  contenu du champ! Alors il faut penser aux opérations  sur les chaînes de caractères.

(19)

Formulaires ‐

Les cases à cocher

Détecter une case cochée. On utilise la propriété 

checked qui est de type booléen (true/ false) pour vrai  ou faux.

<FORM>

<INPUT type="checkbox" name="majeur">Enseignant <INPUT type="checkbox" name="etudiant">Etudiant <INPUT type="button" value="Tester"

onClick="alert(' Enseignant : ' +this form majeur checked+

Programmation Internet IvMad, 2002-2010 37

+this.form.majeur.checked+ '\nEtudiant : ' +this.form.etudiant.checked);"> </FORM>

Formulaires ‐

Les radio‐boutons

La gestion des radio‐boutons est assez complexe.  <FORM>

<INPUT type="radio" name="os" value="Windows 95" checked>Windows 95 <INPUT type="radio" name="os" value="Windows 98">Windows 98 <INPUT type="radio" name="os" value="Windows NT">Windows NT <INPUT type="radio" name="os" value="Linux">Linux

<INPUT type="radio" name="os" value="Autre">Autre

<INPUT type="button" value="Tester" onClick="testerRadio(this.form.os)"> <SCRIPT language="javascript">

function testerRadio(radio) { for (var i=0; i<radio.length; i++) {

if (radio[i] checked) { alert("Système = "+radio[i] value) } } }

Programmation Internet IvMad, 2002-2010 38

if (radio[i].checked) { alert( Système = +radio[i].value) } } } </SCRIPT>

Un groupe de radio‐boutons liés est créé sous le nom de 'os'. La fonction a  comme paramètre le groupe des radio‐boutons. On repère en boucle la  propriété checked à trueet on affiche la valeur correspondante.

(20)

Formulaires ‐

Les radio‐boutons

Programmation Internet IvMad, 2002-2010 39

Formulaires ‐

SELECT

La structure d'un élément de type  SELECT (voir Tableau)

Pour récupérer l'indice la ligne

Nom Nom de la liste selectedIn dex Indice de la ligne  sélectionnée Pour récupérer l indice la ligne  sélectionnée : this.form.elements['liste'].selectedIndex Pour récupérer le nombre de lignes : this.form.elements['liste'].options.length Pour récupérer la valeur de la ligne  sélectionnée: dex sélectionnée (ligne 1 : indice=0) options Tableau des lignes length Nombre de lignes

•value Valeur d'une ligne

Programmation Internet IvMad, 2002-2010 40

sélectionnée:

this.form.elements['liste'].options[this.for m.elements['liste'].selectedIndex].value

•value Valeur d une ligne

(21)

Formulaires ‐

TEXTAREA

Une zone de texte multi‐lignes a comme propriété  principale .valuequi contient le texte de la zone. Pour  récupérer le contenu:

document.forms["nom"].elements["zone"].value

Programmation Internet IvMad, 2002-2010 41

Javascript

‐ Les événements

†

Les évènements sont des actions de l'utilisateur, 

qui  donnent lieu à une interactivité. 

†

Ainsi, il est possible d'associer des fonctions, des 

p

méthodes à des événements:

„ le passage de la souris au‐dessus d'une zone, le  changement d'une valeur, …

†

Les gestionnaires d'événements permettent 

d'associer une action à un événement. 

Programmation Internet IvMad, 2002-2010 42

„ onEvenement="Action_Javascript_ou_Fonction() ";

†

Les gestionnaires d'événements sont associés à 

(22)

Javascript

‐ Liste des événements

Programmation Internet IvMad, 2002-2010 43

Javascript

‐ Liste des événements

† Chaque événement ne peut pas être associé à  n'importe quel objet... il est évident qu'un 

événement OnChangene peut pas s'appliquer à un  lien hypertexte par exemple, ... 

† Objets auxquels on peut associer des événements:

(23)

Javascript et les Maths

Générer un nombre aléatoire entier entre 1 et N: function aleatoire(N) {

return (Math.floor((N)*Math.random()+1)); return (Math.floor((N) Math.random() 1)); }

Convertisseur Euros‐Francs: <FORM>

<INPUT type="text" name="franc" size=10 onBlur="convF(this.form)" value="0"> FF <INPUT type="button" value="&lt; Convertir > ">

Programmation Internet IvMad, 2002-2010 45

<INPUT type="text" name="euro" size=10" onBlur="convE(this.form)" value="0"> Euros </FORM>

Javascript et les Maths

<SCRIPT LANGUAGE="JavaScript"> var taux=6.55957; functionconvF(f) { function convF(f) { var E=Math.round(100*parseFloat(f.franc.value)/taux)/100; if (isNaN(E)) { alert("Montant incorrect"); f.franc.focus(); } else { f.euro.value=E;  } } function convE(f) {

var F=Math round(100*parseFloat(f euro value)*taux)/100;

Programmation Internet IvMad, 2002-2010 46

var F=Math.round(100 parseFloat(f.euro.value) taux)/100; if (isNaN(F)) { alert("Montant incorrect"); f.euro.focus(); } else { f.franc.value=F; }

}

(24)

Formulaires ‐

Contrôler la saisie

Un nombre:

Il peut être utile de vérifier que la saisie dans un champ  de formulaire est bien un nombre : saisie de quantités, de formulaire est bien un nombre : saisie de quantités,  de prix... 

Soit nble champ à tester. Si !(isNaN(nb)) retourne true,  alors nbest un nombre.

<SCRIPT language="javascript"> function CheckNombre(nb) {

Programmation Internet IvMad, 2002-2010 47

// retourne true si c'est un nombre et false sinon return !(isNaN(nb)); } </SCRIPT>

Formulaires ‐

Contrôler la saisie

Un mail Pour vérifier qu'un mail est valide, il suffit de tester la  présence de@et dupoint.

présence de @et du point.

function verifiermail(mail) {

if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) { return true;

} else {

alert("Mail invalide !"); return false; }

Programmation Internet IvMad, 2002-2010 48

} }

La fonction retourne truesinon, elle affiche un message  et retourne false

(25)

Formulaires ‐

Contrôler la saisie

Valider un formulaire par JavaScript 

Il est souvent utile de vérifier la saisie d'un formulaire  avant de le valider. avant de le valider. L'idéal est de créer un bouton (de type "button" et pas  "submit") qui appelle une fonction JavaScript qui  contrôle la saisie et soumet ou non le formulaire.

<FORM name="form4" action="form.php" method="POST"> <INPUT type="texte" name="mail"> Adresse mail<br />

Programmation Internet IvMad, 2002-2010 49

<INPUT type="button" name="bouton" value="Valider" onClick="ValiderMail(this.form)">

</FORM>

Formulaires ‐

Contrôler la saisie

<SCRIPT language="javascript"> function ValiderMail(formulaire) {

if (formulaire.mail.value.indexOf("@",0)<0) {

l t("Ad il i i i lid \ L f l i lid ")} alert("Adresse mail saisie invalide.\nLe formulaire pas valide.")} else {

alert("Formulaire validé");

// Pour valider le formulaire en JavaScript :

formulaire.submit() // envoyé par la méthode POST

} // au fichier form.php sur serveur

Programmation Internet IvMad, 2002-2010 50

}

(26)

Les popups

Le mot popuppeut être traduit par fenêtre surgissante. L'événement est déclenchée par l'utilisateur (clic,  ouverture de site, minuterie, ...) via un code JavaScript. ouverture de site, minuterie, ...) via un code JavaScript. L'objet windowpossède la méthode open qui attend 3  paramètres chaînes de caractères :

window.open( page [,nom] [,options] )

pagecontient l'adresse de la page à afficher.

nomdu popup qui va être ouvert.

Programmation Internet IvMad, 2002-2010 51

optionsparamétrage du popup. 

Les popups – 'page' et 'nom'

Pour ouvrir un popup sur un lien, voici la syntaxe HTML : <A  href = "javascript:popup('popup.html')"> Ouverture popup  basique</A> Déclaration la fonction popup() : <SCRIPT language="javascript"> function popup(page) { window.open(page); } </SCRIPT>

(27)

Les popups – 'options'

La chaîne d'options d'affichage:

Programmation Internet IvMad, 2002-2010 53

Aucune barre de menu, taille fixe :

OuvrirPopup('popup.html', '', 'resizable=no, location=no, width=200, height=100, menubar=no, status=no, scrollbars=no, menubar=no')

Les popups – 'options'

Voici la fonction JavaScript qui ouvre un popuppour  tous ces exemples :

<SCRIPT language="javascript">SCRIPT language javascript

function OuvrirPopup(page,nom,option) { window.open(page,nom,option);

}

</SCRIPT>

(28)

Les popups – 'options'

Ouverture d'une fenêtre popup en fonction

<script LANGUAGE="JavaScript"> <!‐‐ function ShowWindow(cURL)   { var ControlWindow; ControlWindow = window.open(cURL, "RFC", "status,  height=480, width=640, status=no, scrollbars=yes, resizable=yes,  toolbar=0"); if (parseInt(navigator.appVersion) >= 3)    {

Programmation Internet IvMad, 2002-2010 55

f (p ( g pp ) ) { ControlWindow.focus(); }  } //‐‐> [Test] </script>

Le DHTML

La manipulation de ces éléments porte sur leur

position

, leur

dimension

, leur

visibilité

et leur

style

d'affichage

(

police, attributs de police, couleurs

).

d affichage

(

police, attributs de police, couleurs

).

‐ Le mot

dynamique

de DHTML signifie que les

modifications peuvent se faire une fois que la page a

fini de se charger, ce que ne permet pas le HTML

classique.

En HTML pur une fois la page chargée et affichée il

Programmation Internet IvMad, 2002-2010 56

‐ En HTML pur, une fois la page chargée et affichée, il

n'est plus possible d'afficher de nouveaux éléments

ou de les déplacer.

(29)

Le DHTML

Le problème de la page figée a agacé pas un 

Webmaster!

La solution récente appartient à la technique

AJAX

et

La solution récente appartient à la technique 

AJAX

et 

s'intègre parfaitement dans le DHTML.

Il s'agit de renouveler des parties d'une page sans 

pour cela recharger la page entière du serveur.

Il existent deux moyens: synchrone et asynchrone en 

d l f

i

X LH

d

Programmation Internet IvMad, 2002-2010 57

se servant de la fonction 

XMLHTTPRequest

de 

JavaScript.

Le DHTML

AJAX

:

Exécuter des 

requêtes 

sur un serveur en temps 

réel et de manière synchrone ou asynchrone

réel et de manière synchrone ou asynchrone.

Mettre à jour des 

informations

sur une page 

HTML sans recharger pour cela toute la page.

Ajouter

des informations en fonction de 

paramètres ou événements sur une page.

Programmation Internet IvMad, 2002-2010 58

Exécuter

des applications distantes, i.e. Services 

Web.

(30)

Le DHTML ‐ objets

‐ En HTML les images, les liens, les formulaires, etc. sont  des objets que JavaScript peut déjà manipuler.

‐DHTML introduit la notion deDHTML introduit la notion de calquecalqueouou couchecoucheouou  layer.

‐Ces calques sont à la base du DHTML car ils vont  pouvoir être manipulés : déplacés, cachés, modifiés,  redessinés

‐Un calque est défini par le couple de balises<DIV>et

Programmation Internet IvMad, 2002-2010 59

Un calque est défini par le couple de balises  DIV  et  </DIV>

Le DHTML ‐ calques

Un calquedoit posséder :

‐un identifiant, pour le repérer,

‐un style d'affichage, pour indiquer sa position, sa taille,un style d affichage, pour indiquer sa position, sa taille,  sa couleur, etc…

‐un contenu, qui sera affiché

<DIV id="moncalque" style="position:absolute; top:200px; left:100px; visibility:hidden; background-color:yellow"> Ceci est un calque

Programmation Internet IvMad, 2002-2010 60

q </DIV>

Un objet calque est retourné par la fonction  document.getElementByIdde JavaScript.

(31)

Le DHTML ‐ calques

Manipuler la visibilité et la position.  ‐ Faire apparaître le calque:

document getElementById("mcalque") style visibility="visible"; document.getElementById( mcalque ).style.visibility visible ;

‐ Faire disparaître le calque:

document.getElementById("mcalque").style.visibility="hidden";

‐ Pour déplacer le calque:

document.getElementById("mcalque").style.left=500;

document getElementById("mcalque") style top=parseInt(document g

Programmation Internet IvMad, 2002-2010 61

document.getElementById( mcalque ).style.top=parseInt(document.g etElementById("mcalque").style.top)+10;

- Manipulations sur le style: couleur de fond, de texte,  de police, etc.

Le DHTML ‐

les navigateurs

A cause des incompatibilitésentre navigateurs, il est  indispensable de savoir reconnaître les bons!

Pour cela il suffit de tester si la fonctiongetElementById Pour cela il suffit de tester si la fonction getElementById est reconnue : if (document.getElementById) {  alert("Navigateur qui supporte DHTML officiel"); } Pour reconnaitre les anciens navigateurs!

Programmation Internet IvMad, 2002-2010 62

if ((!document.layers)&&(!document.all)&&(!document.getElementById)) { // Navigateur trop ancien !

(32)

Javascript et les cookies

Un cookie permet de stocker des informations sur le  poste client: − Le nombre de visites, , − La date de la dernière visite, − Un identifiant et un mot de passe pour une  reconnaissance automatique, − Une liste de mots‐clés utilisés dans les moteurs de  recherche pour cibler les publicités à afficher,

− Une liste de paramètres de préférences de navigation

Programmation Internet IvMad, 2002-2010 63

Une liste de paramètres de préférences de navigation  pour personnaliser la page présentée.

Javascript et les cookies

Un cookieest un fichier de texte qui contient une chaîne  de caractères avec des informations concaténées:

SetCookie (name, value) { ( ) { var argv = SetCookie.arguments; var argc = SetCookie.argum ents.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false;

document.cookie = name+"="+escape(value)+ ((expires==null) ? "" : (";

Programmation Internet IvMad, 2002-2010 64

document.cookie name escape(value) ((expires null) ? : ( ; expires="+expires.toGMTString()))+ ((path==null) ? "" : ("; path="+path))+ ((domain==null) ? "" : ("; domain="+domain))+ ((secure==true) ? "; secure" : ""); }

(33)

Javascript et les frames

Pour créer une page séparée en plusieurs frames, il faut  à l'origine une page HTML: <HTML> <HEAD><TITLE>Titre de page</TITLE></HEAD> <FRAMESET cols="140,*">

<FRAMESET rows="*,50" frameborder=0>

<FRAME name="FRAME1" src="frame1.html"> <FRAME name="FRAME2" src="frame2.html"> </FRAMESET>

Programmation Internet IvMad, 2002-2010 65

<FRAME name="FRAME3" src="frame3.html"> </FRAMESET>

</HTML>

Javascript et les frames

(34)

Javascript et les frames

Programmation Internet IvMad, 2002-2010 67

Javascript et les frames

(35)

Javascript et les frames

Programmation Internet IvMad, 2002-2010 69

Javascript et les frames

Cadre 1 contient le menu

<HTML><HEAD><TITLE>Frame 1</TITLE><script language="JavaScript"> function charger(page1, page2) {

parent frames["frame2"] window location=page1; parent.frames[ frame2 ].window.location=page1; parent.frames["frame3"].window.location=page2; }</script></HEAD><body><p>Page : 1</P>

<p><A HREF = "JavaScript:charger('frame2.html', 'frame3.html')"> Menu </A></p>

<p><A HREF = "JavaScript:charger('frame5.html', 'frame4.html')"> JavaScript</A></p>

A HREF "J S i t h ('f 6 ht l' 'f 7 ht l')" J

Programmation Internet IvMad, 2002-2010 70

<p><A HREF = "JavaScript:charger('frame6.html', 'frame7.html')"> Java </A></p>

<p><A HREF = "JavaScript:charger('frame8.html',' frame9.html')">Python </A></p>

(36)

Javascript et les frames

Cadre 2 contient le logo <HTML> <HEAD> <TITLE>Frame 5</TITLE> <TITLE>Frame 5</TITLE> </HEAD> <body> <p>Page: 2<br />

<img src="Javascript_toplogo.gif" alt="JavaScript" width="107" height="114"> </P>

</body> /HTML

Programmation Internet IvMad, 2002-2010 71

</HTML>

Javascript et les frames

Cadre 3 contient le texte:

<HTML> <HEAD> TITLE F 4 /TITLE <TITLE>Frame 4</TITLE> </HEAD> <body> <h1>Page: 3</h1> <h2>JavaScript</h2>

<p>JavaScript est un langage de programmation complètement lié au langage HTML. Le développeur internet code ses pages HTML en y intégrant des

Programmation Internet IvMad, 2002-2010 72

sources JavaScript. Le visiteur, par l'intermédiaire de son navigateur, charge le code des pages.</p><p> … </p>

</body> </HTML>

Références

Documents relatifs

bloc d1d2d3...dn.Lors d'une permutation le dernier chiffre de chaque bloc passe en première position de ce bloc tandis que les n 1 autres chiffres sont décalés d'un cran ‒ vers

But pour l’élève: faire passer les objets de la caisse rouge à la caisse verte le plus rapidement possible.. Matériel: foulards, ballons, cerceaux, balles, caisses, anneaux de

Assurer la mixité fonctionnelle : logements, équipements publics (crèche intercommunale dont la surface pourra évoluer selon la demande future), pôle médical intégré dans

La carte électronique génère désormais une impulsion à chaque front d’un des deux signaux, qu’il soit montant ou descendant (donc à chaque changement d’état), Δt est le

Ils peuvent être équipés d’un ou deux contacts auxiliaires utilisés dans le circuit de commande (auto-maintien pour le contact 13/14 et verrouillage de la double commande pour

(La troisième maille n’empruntant aucune branche nouvelle, elle n’apporte aucune information nouvelle). Ecrire la loi

Inconvénients : à course égale, ils sont plus longs que les vérins double effet ; la vitesse de la tige est difficile à régler en pneumatique.. Utilisation : travaux simples

• La chaine d’information, composée d’un boitier électronique et de capteurs, elle détecte le signal et ordonne, lorsqu’elle en reçoit l’ordre, la mise en route du moteur