tp javascript 2 - hack
TP(2) JS — Transformer une page web
Première NSI — Manipulation du DOM
Objectifs
- Modifier dynamiquement le contenu et l’apparence d’une page HTML via la console JavaScript
- Comprendre que ces modifications sont locales et temporaires
- Prendre conscience du rôle du navigateur comme interpréteur côté client
Matériel
- Un navigateur (Chrome ou Firefox)
- Le fichier page_cible.html, à ouvrir localement
- La console JavaScript : touche F12 → onglet Console
Rappels utiles sur la manipulation du DOM
Complément: boucle for .. of sur un objet itérable
Partie 1 — Prise en main (guidée)
Ouvre page_cible.html dans ton navigateur, puis ouvre la console (F12).
Question 1.1
Lis le titre principal de la page :
Que retourne cette instruction ?
Question 1.2
Modifie ce titre pour afficher ton prénom :
Question 1.3
Change la couleur de fond de la page en bleu nuit :
Question 1.4
Cache le paragraphe ayant l’id #pub :
💡 Observation : Recharge la page (F5). Que se passe-t-il ? Pourquoi ?
Partie 2 — Manipulation avancée (semi-guidée)
Exercice 2.1 — Modifier tous les paragraphes
En utilisant querySelectorAll:
- récupère TOUS les paragraphes
pdans unarrayappeléparagraphes - passe le texte de tous les
<p>en majuscules.
Indication : tu peux utiliser une boucle for...of et la méthode .toUpperCase():
Pour chaque element p de la liste paragraphes, transformer p.textContent en p.textContent.toUpperCase()
Exercice 2.2 — Ajouter un bandeau d’alerte
- Crée un
<div>en javascript:
- Ajoute lui:
- du texte
"⚠️ Site en maintenance" - un fond rouge (
#c0392b), texte blanc, centré
- Insère le en haut de la page (avant tout autre élément)
Indications :
- fait une recherche sur la méthode
prepend(), qui s'utilisera ici avecdocument.body.prepend()`. - Une méthode plus générale est d’utiliser
Node.appendChild()qui ajoute un nœud à la fin de la liste des enfants d’un nœud parent spécifié.
Exercice 2.3 — Réécrire le formulaire
Le formulaire de la page a l’id #formulaire:
Modifie son innerHTML pour y placer un nouveau formulaire avec :
- un champ texte “Pseudo”
- un champ email “Adresse mail”
- un bouton “Envoyer”
Partie 3 — Défi ouvert 🚀
Objectif : transformer page_cible.html en une page qui ressemble à un site de ton choix (journal, réseau social fictif, site de jeu vidéo…).
Contraintes :
- Utiliser au moins 6 instructions JS différentes
- Modifier le titre, le contenu, les couleurs, et ajouter au moins un nouvel élément
- Prendre une capture d’écran de votre résultat
🔎 Question de réflexion : Le vrai site que tu as “imité” a-t-il été modifié ? Qui peut voir tes changements ?
Partie 4 — Bilan et ouverture
Recopier les questions et répondre à celles-ci dans une nouvelle page web
TP_compte_rendu.html
Répondre aux questions suivantes dans le compte-rendu :
- Tes modifications JavaScript ont-elles été envoyées au serveur du site ? Justifie.
- Qui exécute le code JavaScript : le serveur ou le navigateur ?
- Que faudrait-il faire pour que tous les visiteurs voient les modifications ?
- Selon toi, à quelle couche du modèle client-serveur se situent ces échanges ?
Ces questions seront le point de départ de la prochaine séquence sur le modèle client-serveur.