Interaction avec l’utilisateur dans une page web

1 – HTML le langage des pages web

Le contenu géré par le HTML et celui géré par le CSS sont très différents ; en effet, le html gère la structure et le contenu tandis que le css s’occupe de la mise en forme.

HTML signfie HyperText MarkupLangage.

Une page web est un type de document. HTML est un langage de description des pages web basé sur des balises destinées au navigateur.

CSS signifie Cascading Style Sheet (feuille de style)

On associe donc le langage CSS au HTML pour la mise en forme.

DOM signifie Document Object Model ou DOM

Le DOM est un arbre créé par le navigateur pour représenter la page. La racine de l’arbre est <html>.

Par exemple; l’activité 1 :

Les liens (à ouvrir dans firefox) :  file:///U:/nsi/HTML/index.html ; file:///U:/nsi/HTML/HTML%20Pasquet%20Rapha%C3%ABlle/index2.html

2 – Javascript : un langage de programmation pour les pages web

Pour ajouter du code javascript dans une page html, il suffit d’écrire le code entre deux balises: <script>…..</script>

Par la suite on placera le code javascript dans un fichier séparé.

Activité 2 :

  • (Tapez le code ci-dessous dans un éditeur de texte comme notepad++
  • Enregistrer le fichier au format html
  • Examiner le fichier (clic droit) avec un navigateur)

Divers exemples Javascript : https://www.w3schools.com/js/js_htmldom_elements.asp

Souvent avec JavaScript, l’on souhaite manipuler des éléments HTML.

Pour ce faire, il faut tout d’abord trouver les éléments HTML ; il existe diverses façons de le faire :

  • par id
  • par le nom de la balise
  • par le nom de la catégorie
  • par les « sélectionneurs CSS »
  • par les « collections d’objets HTML »

Finding HTML Elements

MethodDescription
document.getElementById(id)Find an element by element id
document.getElementsByTagName(name)Find elements by tag name
document.getElementsByClassName(name)Find elements by class name

Changing HTML Elements

PropertyDescription
element.innerHTML =  new html contentChange the inner HTML of an element
element.attribute = new valueChange the attribute value of an HTML element
element.style.property = new styleChange the style of an HTML element
MethodDescription
element.setAttribute(attribute, value)Change the attribute value of an HTML element

Adding and Deleting Elements

MethodDescription
document.createElement(element)Create an HTML element
document.removeChild(element)Remove an HTML element
document.appendChild(element)Add an HTML element
document.replaceChild(new, old)Replace an HTML element
document.write(text)Write into the HTML output stream

Adding Events Handlers

MethodDescription
document.getElementById(id).onclick = function(){code}Adding event handler code to an onclick event

Finding HTML Objects

The first HTML DOM Level 1 (1998), defined 11 HTML objects, object collections, and properties. These are still valid in HTML5.

Later, in HTML DOM Level 3, more objects, collections, and properties were added.

PropertyDescriptionDOM
document.anchorsReturns all <a> elements that have a name attribute1
document.appletsDeprecated1
document.baseURIReturns the absolute base URI of the document3
document.bodyReturns the <body> element1
document.cookieReturns the document’s cookie1
document.doctypeReturns the document’s doctype3
document.documentElementReturns the <html> element3
document.documentModeReturns the mode used by the browser3
document.documentURIReturns the URI of the document3
document.domainReturns the domain name of the document server1
document.domConfigObsolete.3
document.embedsReturns all <embed> elements3
document.formsReturns all <form> elements1
document.headReturns the <head> element3
document.imagesReturns all <img> elements1
document.implementationReturns the DOM implementation3
document.inputEncodingReturns the document’s encoding (character set)3
document.lastModifiedReturns the date and time the document was updated3
document.linksReturns all <area> and <a> elements that have a href attribute1
document.readyStateReturns the (loading) status of the document3
document.referrerReturns the URI of the referrer (the linking document)1
document.scriptsReturns all <script> elements3
document.strictErrorCheckingReturns if error checking is enforced3
document.titleReturns the <title> element1
document.URLReturns the complete URL of the document1

C’est le DOM qui permet au script d’examiner et de modifier le contenu affiché par le navigateur web.

Voici une représentation du DOM de la page de l’activité 2 :

JavaScript a été créé en 1995 par l’Américain Brendan Eich. Aujourd’hui, presque toutes les pages Web contiennent du code JavaScript. En effet, ce langage de programmation est associé au langage HTML.

JavaScript est un langage objet et événementiel. Le développeur peut créer des objets sur la page, avec des propriétés et des méthodes et leur associer des actions en fonction d’événements déclenchés par le visiteur (passage de souris, clic, saisie clavier, etc…)

3 – Exemples d’interactions avec l’utilisateur

Références pour s’aider : https://www.w3schools.com/js/default.asp

3- A – Gestion d’un clic de souris

Activité 3 : un bouton pour réagir :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>tjs004</title>    
  </head>
<body>
<p>Cliquez sur le bouton pour enregistrer votre pseudo</p>
<button onclick="myFunction()">Cliquez</button>
<p id="test"></p>
<script>
function myFunction() {
  var nom = prompt("Entrez votre nom","pseudo");
    document.getElementById("test").innerHTML =
    "Bonjour " + nom;
  }
</script>
</body>
</html>

Le rendu :

La partie en Javascript permet une interaction avec la page, comme ici avec le pseudo.

Les variables :

Il existe 3 façons différentes pour déclarer une variable JavaScript :

  • en utilisant « var »
  • en utilisant « let »
  • en utilisant « const »

Les variables permettent de stocker des valeurs, par exemple :

Modification du programme :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>tjs004</title>    
  </head>
<body>
<p>Cliquez sur le bouton pour enregistrer votre pseudo</p>
<button onmouseover="myFunction()">Cliquez</button>
<p id="test"></p>
<script>
function myFunction() {
  var nom = prompt("Entrez votre nom","pseudo");
    document.getElementById("test").innerHTML =
    "Bonjour " + nom;
  }
</script>
</body>
</html>

« Onclick » a été remplacé par « onmouseover », ce qui affiche cela :



seulement en survolant « cliquez ici ».

L’utilisateur déclenche un événement (en cliquant sur le bouton par exemple).Cet événement entraîne l’exécution d’un code javascript sur la machine de l’utilisateur.

Les événements sont donc des actions de l’utilisateur qui permettent d’ajouter de l’interactivité à une page web.

D’autres exemples sur la gestion des éléments : https://www.w3schools.com/js/js_events.asp

Common HTML Events

Here is a list of some common HTML events:

EventDescription
onchangeAn HTML element has been changed
onclickThe user clicks an HTML element
onmouseoverThe user moves the mouse over an HTML element
onmouseoutThe user moves the mouse away from an HTML element
onkeydownThe user pushes a keyboard key
onloadThe browser has finished loading the page

3-B – clic ,entrée clavier , tests, calculs…

Activité 4 : Tirage aléatoire

<!DOCTYPE html>
<html>

<head>
	<link rel="icon" href="alea.ico" />
    <title>Alea</title>
    <meta charset="UTF-8" />
    <script src="alea.js"></script>

    <body>
        <h2>tirage aléatoire</h2>
        <p>Saisir un nombre entre 1 et 10:</p>
        <input id="nombre">

        <button type="button" onclick="myFunction()">Envoyer</button>

        <h3 id="reponse"></h3>

    </body>

</html>

Le rendu :

Si l’on obtient la mauvaise réponse
Si l’on obtient la bonne réponse

Pour définir « myFunction » et « reponse » :

function myFunction() {
    var x, y, text;
    x = document.getElementById("nombre").value;
    y = getRandomInt(1, 10)
    if (isNaN(x) || x < 1 || x > 9) {
        text = "Non autorisé";
    } else {
        if (x == y) {
            text = "gagné bravo !";
        } else {
            text = "perdu ! la bonne réponse était " + y.toString();
        }
    }
    document.getElementById("reponse").innerHTML = text;
}
function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min)) + min;

4 – Projets

4-1)Projet 1

Problème 1 : réaliser un convertisseur de monnaies en ligne

  • monnaie 1 à convertir en monnaie 2
  • somme disponible (monnaie 1)
  • cours du jours de la monnaie 2
  • Afficher la somme convertie

Pour s’aider : https://www.w3schools.com/js/default.asp

<html lang="fr">
    <head>
        <title>Euros</title>
        <meta charset="UTF-8"/>
		<link rel="icon" type="image/png" href="monnaie.png" />
        <script>
            function affiche(){
				var devise=prompt('votre monnaie?');
				var newDevise=prompt('nouvelle monnaie?');
                var coef=parseFloat(prompt('combien vaut 1 '+devise+ ' en '+newDevise ));
				var somme=parseFloat(prompt('votre somme en '+ devise));				
                var monnaie=coef*somme;
				var resultat=somme.toFixed(2)+" "+devise+" valent "+monnaie.toFixed(2)+" "+ newDevise
                alert(resultat);
				document.getElementById("test").innerHTML ="<b>"+resultat+"</b>";
                }

        </script>
    </head>
    
    <body bgcolor="white">
	
		<h1>Convertisseur</h1>
		<img src="devise.png" alt="image" style="width:200px"><br>
		<a href="https://www.boursorama.com/bourse/devises" target="_blank">Cours des devises</a><br><br>        
        <button onclick="affiche()">Cliquez</button>
		<h2 id="test"></h2>
    </body>
</html>

4-2 – Projet 2

Problème 2 : plafond nuageux

Calculer et afficher en ligne la hauteur du plafond nuageux à partir de la température et du taux d’humidité.

2 réponses

  1. Anna dit :

    #couleurs

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *