insertAdjacentHTML em qualquer lugar

Há três maneiras de inserir conteúdo em um documento HTML:

É possível dizer que também temos document.write para poucos casos de uso.

O innerHTML foi padronizado em HTML5 e, com ele, um método insertAdjacentHTML irmão que funciona como innerHTML, mas nos permite definir mais especificamente onde inserir o conteúdo HTML: beforeBegin, afterBegin, beforeEnd e afterEnd.

var ul = document.getElementById("list");
ul.insertAdjacentHTML("beforeEnd", "<li>A new li on the list.</li>");

Em 2008, John Resig escreveu um artigo sobre insertAdjacentHTML com esta conclusão:

Até agora, o principal problema com insertAdjacentHTML era a falta de suporte ao navegador. Com a implementação de insertAdjacentHTML a partir da versão 8, o Firefox estará disponível em todos os principais navegadores, incluindo os navegadores para dispositivos móveis. Para usá-lo agora e garantir que ele funciona no Firefox em versões anteriores à 8, use este polyfill.