Diferencias entre innerHTML y textContent

En JavaScript, estas dos propiedades  establecen o devuelven el contenido de un elemento HTML en el DOM. Aparentemente hacen lo mismo, pero vamos a ver que hay diferencias sensibles entre ellas.

textContent

Vamos a ver como aplicarlo:

const elemSalida = document.getElementById('salida')
elemSalida.textContent = "Vamos a darle a Javascript"

Resultado

<p id="salida">Vamos a darle a Javascript</p>

 

innerHTML

Vamos a ver como aplicarlo:

const elemSalida = document.getElementById('salida')
elemSalida.innerHTML = "<strong>Vamos a darle a Javascript</strong>"

Resultado

<p id="salida"><strong>Vamos a darle a Javascript</strong></p>

 

Las diferencias

La propiedad innerHTML establece y devuelve el contenido con HTML, textContent establece y devuelve el contenido excluyendo las etiquetas HTML

La propiedad innerHTML es vulnerable a ciberataques. HTML5 no permite que se ejecuten etiquetas <script> insertadas con innerHTML, pero aún es posible incrustar código JavaScript sin usar la etiqueta <script> . Estos ataques son denominados Cross-Site Scripting (XSS).

La propiedad innerHTML necesita más tiempo para la ejecución

 

Conclusión

Debemos evitar el uso de innerHTML y usar en su lugar textContent. Si necesitamos mofificar el HTML del DOM, La alternativa es usar document.createElement() y appendChild()

let enfasis = document.createElement("strong")
enfasis.textContent = "Vamos a darle a Javascript"
document.getElementById('salida').appendChild(enfasis)

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *