Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Element.insertAdjacentHTML()

Este artigo necessita de uma revisão técnica. Como posso ajudar.

Este artigo necessita de uma revisão editorial. Como posso ajudar.

Esta tradução está incompleta. Ajude atraduzir este artigo.

Resumo

insertAdjacentHTML () analisa o texto especificado como HTML ou XML e insere os nós que resultam na árvore DOM em uma posição especificada. Não reanalisa o elemento que está a ser utilizado e, portanto, não corrompe os elementos existentes dentro do elemento. Esta, e evitando a etapa extra de serialização torna-o muito mais rápido do que a manipulação direta innerHTML.

Syntax

element.insertAdjacentHTML(posição, texto);

posição é a posição em relação ao elemento, e deve ser um dos seguintes tipos:

'beforebegin'
Antes do próprio elemento.
'afterbegin'
Dentro do elemento, antes de seu primeiro filho (childNode).
'beforeend'
Dentro do elemento, após seu último filho (childNode) .
'afterend'
Após o próprio elemento.

texto é a string a ser analisada como HTML ou XML e inserido na árvore.

Visualização da posição de nomes

<!-- beforebegin -->
<p>
<!-- afterbegin -->
foo
<!-- beforeend -->
</p>
<!-- afterend -->
Nota:  As posições beforeBegin e afterEnd funcionam apenas se o nó está em uma árvore DOM e tem um elemento pai.

Exemplo

// <div id="one">one</div>
var d1 = document.getElementById('one');
d1.insertAdjacentHTML('afterend', '<div id="two">two</div>');

// Neste ponto, a nova estrutura é:
// <div id="one">one</div><div id="two">two</div>

Especificação

Specification Status Comment
DOM Parsing and Serialization
The definition of 'Element.insertAdjacentHTML()' in that specification.
Living Standard  

Compatibilidade de Navegadores

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Suporte básico 1.0 8.0 (8.0) 4.0* 7.0 4.0 (527)
 Característica Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Suporte básico ? 8.0 (8.0) ? ? ?

 

Questão no IE:

  • No IE8, as mudanças no dom são feitas somente depois do JS ter terminado de carregar, então se você precisa acessar os nós gerados,  terá que fazê-lo de uma forma assíncrona.

Ver também

  • hacks.mozilla.org guest post por Henri Sivonen incluem benchmarks que demonstram que insertAdjacentHTML pode ser bem rápido em alguns casos.

Etiquetas do documento e colaboradores

 Colaboradores desta página: belsanpesou
 Última atualização por: belsanpesou,