JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 7 · Exercice de TD
Afficher des avis sans danger
Le DOM : lire et modifier la page · niveau 2
Énoncé
Des avis de lecteurs { auteur, texte } arrivent d'un serveur et peuvent contenir n'importe quoi. Écrire ajouterAvis(liste, avis) qui ajoute à la liste un <li> contenant le nom de l'auteur en gras, suivi de « : » et du texte, sans jamais interpréter de HTML. Vérifier avec un auteur nommé <img src=x onerror=alert(1)>.
Corrigé
const avis = [
{ auteur: "Lina", texte: "Très clair, les exercices sont <b>excellents</b>." },
{ auteur: "<img src=x onerror=alert(1)>", texte: "Bof." },
];
function ajouterAvis(liste, { auteur, texte }) {
const li = document.createElement("li");
const nom = document.createElement("strong");
nom.textContent = auteur;
li.append(nom, ` : ${texte}`);
liste.append(li);
}
const liste = document.querySelector("#avis");
for (const a of avis) {
ajouterAvis(liste, a);
}
console.log(liste.querySelectorAll("img, b").length, liste.children.length);
console.log(liste.lastElementChild.textContent);
0 2
<img src=x onerror=alert(1)> : Bof.
Ni le <img> de l'auteur malveillant ni le <b> du premier avis ne sont devenus des éléments : 0 élément trouvé, et le dernier avis s'affiche tel qu'il a été écrit. append insère une chaîne comme un nœud texte.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.