• Aucun résultat trouvé

Jean-Claude Charr JavaScript

N/A
N/A
Protected

Academic year: 2022

Partager "Jean-Claude Charr JavaScript"

Copied!
38
0
0

Texte intégral

(1)

JavaScript

Jean-Claude Charr

Maître de conférences IUT de Belfort – Montbéliard Université de Franche Comté

(2)

Description générale

JavaScript rend les pages html interactives

JavaScript est un langage de programmation de scripts

Il est en général ajouté aux pages html ou dans un fichier avec une extension .js

Il est interprété et par suite exécuté sans être compilé

Java et JavaScript deux langages complètement

différents

(3)

JavaScript dans un fichier HTML

Exemple:

<html>

<head>

<script type="text/javascript">

function message(){

alert("la fonction message a été appelée"); } </script>

</head>

<body onload="message()">

<script type="text/javascript">

document.write("message écrit par JavaScript");

</script>

</body>

</html>

(4)

4

JavaScript dans un fichier externe

Exemple :

Fichier HTML contenant :

<html>

<head>

<script type="text/javascript" src="fichier.js"></script>

</head>

<body onload="popup()">

</body>

</html>

Fichier JavaScript contenant :

function popup() {

alert("Hello World") ; }

(5)

5

Syntaxe

Javascript est sensible à la casse.

Les instructions sont exécutées en séquentiel

Une commande JS termine par un ; ou un retour à la ligne

{ } encapsulent un bloc de JavaScript

Commenter une ligne : // commentaire

Commenter un paragraphe : /*...commentaire

commentaire … */

(6)

Variables

Déclarer une variable avec l'instruction var : Ex : var x ;

var nom ;

Affecter une valeur à une variable avec l'opérateur = : Ex : x=5; nom="Dupont";

var prénom="Rita" ;

Ajouter \ pour écrie un caractère spécial dans le texte : \', \", \&, \n, \\, \t ...

Ex : document.write ("\"Rita\" \& I are singing!");

(7)

Opérateurs

Opérateurs arithmétiques binaires : +, -, *, /, %, +=, ....

Ex : x=5; y=x+1; y-=x ;

Opérateurs arithmétiques unaires : ++, -- ; Ex : x=5; x-- ;

Opérateur de concaténation + :

Ex : NomComplet= "Rita"+" Dupont" ;

Opérateurs de comparaisons : ==, ===, !=, <, >, <=, >=

Ex : if(age<18) document.write("Trop jeune") ;

Opérateurs logiques : &&, ||, !

Ex : if( x<5 && x>3) document.write("x=4");

(8)

L'instruction if()

Exemple :

<script type="text/javascript">

var d = new Date()

var time = d.getHours() if (time<10) {

document.write("<b>Good morning</b>");

}

else if (time>10 && time<16) {

document.write("<b>Good day</b>");

}

else {

document.write("<b>Hello World!</b>");

}

</script>

(9)

L'instruction switch

Exemple :

<script type="text/javascript">

var d=new Date();

theDay=d.getDay();

switch (theDay){

case 5 : document.write("Finally Friday");

break;

case 6 : document.write("Super Saturday");

break;

case 0 : document.write("Sleepy Sunday");

break;

default : document.write("I'm looking forward to this weekend!");

}

</script>

(10)

Popup boxes

Alert box :

alert("I am an alert box!");

Confirm box :

var r=confirm("Press a button") ;

Prompt box :

var name=prompt("Enter your name","Harry");

(11)

Fonctions

Exemple : <html>

<head>

<script type="text/javascript">

function product(a,b){ //déclaration return a*b;

}

</script>

</head>

<body>

<script type="text/javascript">

document.write(product(4,3)); //appel

</script>

</body>

</html>

(12)

Les boucles

La boucle for :

Ex : for (i=0;i<=5;i++){

document.write("The number is " + i) ; }

La boucle while :

Ex : while (i<=5){

document.write("The number is " + i) ; i++;

}

La boucle do … while :

Ex : do{

document.write("The number is " + i);

i++;

} while (i<=5);

(13)

Les instructions break et continue

Exemple :

for (i=0;i<=10;i++){

if (i==3)

continue;

else if( i==5) break;

document.write("The number is " + i);

document.write("<br />");

}

(14)

L'instruction for … of

Le code entre les accolades est exécuté pour chaque élément ou propriété.

Exemple :

var x;

var mycars = new Array();

mycars[0] = "Saab";

mycars[1] = "Volvo";

mycars[2] = "BMW";

for (x of mycars){

document.write(mycars[x] + "<br />");

}

(15)

15

Évènements

Permettent de créer des pages dynamiques

Peuvent déclencher l'exécution de fonctions JS

Chaque élément peut détecter plusieurs évènements

Exemple d'évènements :

onload et onunload : lors de chargement de la page onfocus, onchange, onblur : concernant un textfield onsubmit : après avoir cliqué un boutton submit

onmouseover : la souris est mise sur un élément Exemple :

<input type="text" size="30" id="email" onchange="checkEmail()">

(16)
(17)

Évènements modèle enligne

<html>

<head>

<script type="text/javascript"> // Animation function over(){

document.getElementById("b1").src ="b_blue.gif";

}function out(){

document.getElementById("b1").src ="b_pink.gif";

</script>}

</head>

<body>

<a href="http://www.google.com" target="_blank">

<img border="0" alt="Visit Google!" src="b_pink.gif" id="b1"

onmouseover="over()" onmouseout="out()" /> </a>

</body>

</html>

(18)

18

Évènements modèle traditionnel

<script type="text/javascript">

function over(){

document.getElementById("b1").src ="b_blue.gif";

}

function out(){

document.getElementById("b1").src ="b_pink.gif";

}

function eventRegister(){

document.getElementById("b1").onmouseover=over ; document.getElementById("b1").onmouseout=out ; }

</script>

</head>

<body onload=

"

eventRegister()

"

>

<img border="0" alt="Visit Google!" src="b_pink.gif" id="b1"/>

(19)

La méthode addEventListener()

Syntaxe :

element.addEventListener(event, function, useCapture);

Exemple :

element.addEventListener("click", myFunction);

function myFunction() { alert ("Hello World!");

}

Passer des paramètres

element.addEventListener("click", function(){myFunction(x,y);});

(20)

L'objet event

Permet de récupérer des informations sur l'évènement déclenché : type, ctrlkey, clientX, clientY, keyCode ...

Ex : document.onmouseover = mouseOver;

function mouseOver( e ){

var src ;

if ( e.srcElement )

src=e.srcElement ; // IE else

src=e.target ; // firefox src.style.color=

"red" ;

}

(21)

Les exceptions (1/2)

function message(){

var txt="";

try{

adddlert("Welcome guest!");

}

catch(err){

txt="There was an error on this page.\n\n" ;

txt+="Error description: " + err.description + "\n\n";

txt+="Click OK to continue viewing this page,\n";

txt+="or Cancel to return to the home page.\n\n";

if(!confirm(txt)){

document.location.href="http://www.w3schools.com/";

} } }

(22)

Les exceptions (2/2)

var x=prompt("Enter a number higher than 10 :","");

try{

if(x<10)

throw "Err1" ; else if(isNaN(x)) throw "Err2";

}

catch(er){

if(er=="Err1")

alert("Error! The value is too low");

if(er=="Err2")

alert("Error! The value is not a number");

}

(23)

Les objets

JS est un langage orienté objet

Un objet est composé d'attributs et méthodes

Il existe des objets prédéfinis dans JS comme String Exemple :

<script type="text/javascript">

var txt="Hello World!";

document.write(txt.length+"\n") ; txt.toUpperCase();

txt.big(); txt.bold(); txt.fontcolor("green");

txt.link("http://www.google.com");

document.write(txt+" "+txt.replace("World","everyone")) ; document.write("\n"+txt.indexOf("d"));

</script>

(24)

L'objet Math

Contient plusieurs constantes et méthodes/

opérateurs mathématiques.

Exemples : Math.PI;

Math.sqrt(16);

Math.cos(90);

Math.round(4.7);

Math.random();

Math.max(0,150,30,20,38);

Math.pow(4,5);

(25)

L'objet String

L'objet String fournit plusieurs méthodes pour manipuler les chaînes de caractères

Exemples :

var txt=

"Java script";

txt.charAt(2);

txt.concat(" is the best");

txt.split(" ");

txt.toLowerCase();

(26)

L'objet Date (1/2)

Permet d'avoir la date et le temps courant ou de préciser une date et un temps spécifique.

Permet de manipuler la date et le temps Exemple :

today = new Date()

d1 = new Date("October 13, 1975 11:13:00");

d2 = new Date(79,5,24);

d3 = new Date(79,5,24,11,33,0);

today.setDate(today.getDate()+5) ; d1.setFullYear(2010,0,14);

if (d1<today)

alert("Today is after 14th January 2010");

(27)

27

L'objet Date (2/2)

<html>

<head>

<script type="text/javascript">

function startTime(){

var today=new Date() ; var h=today.getHours();

var m=today.getMinutes() ; var s=today.getSeconds();

document.getElementById('txt').innerHTML=h+":"+m+":"+s;

t=setTimeout('startTime()',500); } </script> //clearTimeout(t); pour arrêter

</head>

<body onload="startTime()">

<div id="txt"></div>

</body>

</html>

(28)

L'objet Array (vecteur)

Permet de stocker plusieurs éléments dans une variable

Créer et initialiser un vecteur : Ex : var myCars=new Array() ;

var myCars=new Array("Saab","Volvo","BMW") ; var myCars=["Saab","Volvo","BMW"];

Accéder et modifier un élément d'un vecteur : Ex : myCars[0]="Opel" ;

Contient plusieurs méthodes pour arranger, ajouter et

supprimer des éléments : sort(), join(), reverse(), pop(),

push(), shift(), ...

(29)

L'objet Boolean

Il peut seulement avoir les valeurs false ou true.

Exemples de création et initialisation :

var myBoolean=new Boolean() ;

var myBoolean=new Boolean(true);

var myBoolean=new Boolean(0);

var myBoolean=new Boolean(null) ; var myBoolean=new Boolean("true");

var myBoolean=new Boolean("");

var myBoolean=new Boolean(false) ; var myBoolean=new Boolean("false");

var myBoolean=new Boolean(NaN) ;

var myBoolean=new Boolean("Richard");

(30)

Définir un objet et le manipuler (1/2)

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue" ;

function person(firstname,lastname,age,eyecolor){

this.firstname=firstname; //les attributs this.lastname=lastname;

this.age=age;

this.eyecolor=eyecolor ; //les méthodes

this.setFirstName=function(name){this.firstname=name;}

this.getFirstName=getFirstName;

}

function getFirstName(){

return this.firstName;

}

(31)

Définir un objet et le manipuler (2/2)

Créer une instance de l'objet défini :

Ex : father=new person("John","Doe",50,"blue");

Accéder aux attributs de l'objet instancié Ex : document.write(father.firstname);

Appeler une méthode de l'objet instancié Ex : father.setFirstName("Jack");

Ajouter ou supprimer une propriété

Ex : father.nationality="French" ;

delete father.nationality ;

(32)

L'objet RegExp

Décrit des motifs pour les rechercher dans un texte

Syntaxe : var txt=new RegExp(pattern,modifiers);

var txt=/pattern/modifiers ;

Exemple :

var str="Is this all there is?" ; var patt1=/is/gi;

document.write(str.match(patt1)) ; var patt2=new RegExp("e");

document.write(patt2.test("The best things are free")) ; document.write(patt2.exec("The best things are free"));

(33)

Détecter le navigateur

Permet d'afficher des informations différentes selon le navigateur utilisé par le client

L'objet navigator :

document.write("Browser Name: "+navigator.appName)

document.write("Browser Version : " + navigator.appVersion)

document.write("Cookies Enabled: " + navigator.cookieEnabled)

(34)

34

Cookies(1/2)

Une cookie est une variable stockée sur l'ordinateur du Client.

Elle peut contenir des informations concernant le client comme : nom, mot de passe, date du dernier accès...

Exemple :

function checkCookie(){

username=getCookie('username');

if (username!=null && username!="")

alert('Welcome again '+username+'!') ; else{

username=prompt('Please enter your name:',"");

if (username!=null && username!="") setCookie('username',username) ; }

}

(35)

35

Cookies(2/2)

function setCookie(c_name,value){

document.cookie=c_name+ "=" +escape(value)+365;

}

function getCookie(c_name){

if (document.cookie.length>0){

c_start=document.cookie.indexOf(c_name + "=");

if (c_start!=-1){

c_start=c_start + c_name.length+1;

c_end=document.cookie.indexOf(";",c_start);

if (c_end==-1) c_end=document.cookie.length;

return unescape(document.cookie.substring(c_start,c_end));

} }

return "";

}

(36)

JS pour valider un formulaire (1/3)

<html>

<head>

<script type="text/javascript">

...

</script>

</head>

<body>

<form action="submit.htm" onsubmit="return validate()"

method="post" name="myForm">

Email: <input type="text" name="email" size="30">

<input type="submit" value="Submit">

</form>

</body>

</html>

(37)

JS pour valider un formulaire (2/3)

function validate(){

var x = document.forms["myForm"]["fname"].value;

if (x == null || x == "") {

alert("Name must be filled out");

return false;

}

return true ; }

(38)

38

JS pour valider un formulaire (3/3)

<input id="id1" type="number" min="100" max="300">

<button onclick="myFunction()">OK</button>

<p id="demo"></p>

function myFunction() {

var input = document.getElementById("id1");

if (input.checkValidity() == false)

document.getElementById("demo").innerHTML = input.validationMessage; //setCustomValidity() }

Références

Documents relatifs

Carte des peuplements benthiques de la partie française de la Mer du Nord (Davoult D., Dewarumez J.M., Prygiel J.. Les fonds à Ophiothrix fragilis et à Laminaria

La g´ eom´ etrie sur la carte n’est plus homog` ene : les obstacles naturels (montagnes etc.) font que la ligne droite n’est pas en g´ en´ eral le plus court chemin pour se

Elle se cache bien dans son trou .Quand je veux la voir, je mets du fromage parterre et tout de suite, elle sort pour le prendre.. &lt;&lt;Tu es gourmande petite souris&gt;&gt;

L’utilisation d’un fichier externe .js (la déclaration du script se fait dans l’entête de la page web). Les évènements onload, onunload, onchange,

blur focus handleEvent select Ses gestionnaires d’ ´ev ´enements :. onBlur onChange

Mais comme je le disais, ce sont des figures, des détails, ou des artistes qui sont en quelque sorte décalés ou déroutants, qui me permettent d’envisager et de reconsidérer

Comment créer une collaboration entre la programmation côté serveur et celle côté client ….. IFT1147 - Au delà du

Ceci le conduit tout naturellement à la radio- pédiatrie qu'il viendra diriger à Nancy, une fois nommé Maître de Conférence d'Électro- Radiologie diagnostique et thérapeutique,