Si vous souhaitez insérer du contenu dans un document HTML, vous avez trois possibilités:
- Utiliser des méthodes DOM telles que
createNode
etappendChild
- Utiliser des fragments de document
- Utiliser
innerHTML
On peut dire que nous avons également document.write
pour quelques cas d'utilisation.
innerHTML
a été normalisé en HTML5, avec une méthode sœur insertAdjacentHTML qui fonctionne comme innerHTML
, mais qui nous permet de définir plus précisément où nous voulons insérer le contenu HTML: beforeBegin, afterBegin, beforeEnd et afterEnd.
var ul = document.getElementById("list");
ul.insertAdjacentHTML("beforeEnd", "<li>A new li on the list.</li>");
En 2008, John Resig a écrit un article sur insertAdjacentHTML, qui se concluait comme suit:
Jusqu'à présent, le principal problème de la méthode insertAdjacentHTML était son manque de compatibilité avec les navigateurs. Firefox implémente insertAdjacentHTML à partir de la version 8. Il sera donc disponible dans tous les principaux navigateurs, y compris les navigateurs mobiles. Si vous souhaitez l'utiliser dès maintenant et vous assurer qu'il fonctionne dans les versions antérieures à Firefox 8, vous pouvez utiliser ce polyfill.