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 -->
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.