es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convertir html en javascript a etiquetas HTML

Estoy trabajando en los tooltips y desde el backend obtendré datos con etiquetas html. Necesito mostrar en el tooltip los datos correspondientes en sus respectivas etiquetas. Por ejemplo, obtendré

<

h1>hola usuario haz clic aquí desde el backend. Debo mostrarlos como hello user en formato h1 y click here debería ser un enlace. Intenté con ambas funciones y reemplazar pero no está funcionando.

Con la función:

function convertToPlain(html){
var tempDivElement = document.createElement(“div”);
tempDivElement.innerHTML = html;
return tempDivElement.textContent || tempDivElement.innerText || “”;
}
var htmlString= ”

Bears Beets Battlestar Galactica

\nQuote by Dwight Schrute click here

“;
let dataVal = convertToPlain(htmlString)
document.getElementById(“demo”).innerHTML = dataVal;

Con reemplazo:

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado de mostrar los datos en sus respectivas etiquetas dentro de la herramienta de información, se pueden seguir los siguientes pasos:

    1. Utilice innerHTML en lugar de textContent o innerText dentro de la función convertToPlain para conservar las etiquetas HTML en el texto plano devuelto.
    2. Utilice un DOMParser para crear un nuevo DOM a partir del texto plano devuelto.
    3. Acceda a los elementos específicos dentro del nuevo DOM utilizando querySelector.

    Aquí hay una función convertToPlain actualizada que incorpora estos cambios:

    function convertToPlain(html) {
      const tempDivElement = document.createElement("div");
      tempDivElement.innerHTML = html;
    
      const parser = new DOMParser();
      const newDom = parser.parseFromString(tempDivElement.innerHTML, "text/html");
    
      const h1Content = newDom.querySelector("h1").innerHTML;
      const aContent = newDom.querySelector("a").outerHTML;
    
      return h1Content + " " + aContent;
    }
    

    El método querySelector se utiliza para acceder a los elementos h1 y a dentro del nuevo DOM, y se utilizan sus propiedades innerHTML y outerHTML respectivas para recuperar su contenido, incluyendo sus etiquetas HTML correspondientes.

    En la variable htmlString, el contenido para la herramienta de información está envuelto dentro de una etiqueta div. Para mostrar la herramienta de información cuando se pasa el mouse sobre un elemento, se puede agregar un event listener:

    <div on:mouseover="{handleMouseover}">Pasa el mouse sobre mí</div>
    
    <div id="tooltip"></div>
    

    En la función handleMouseover, se puede llamar a la función convertToPlain con los datos obtenidos del backend:

    function handleMouseover() {
      const htmlString = "<div><h1>Hola usuario</h1><p>Haz clic <a href='#'>aquí</a></p></div>";
    
      const tooltip = document.getElementById("tooltip");
      tooltip.innerHTML = convertToPlain(htmlString);
    }
    

    Esto establecerá el contenido del elemento tooltip con el contenido formateado obtenido del backend cuando se pase el mouse sobre el elemento. La etiqueta a dentro de la herramienta de información también es funcional, ya que es una etiqueta <a> válida con el atributo href establecido en #.

Comments are closed.