2011-09-08 17 views
6

Tengo datos HTML almacenados en la base de datos que deseo mostrar tal como están. Sigue convirtiendo etiquetas
a &lt;br /&gt;, que es un comportamiento que no quiero. He intentado jugar con javascript replace y todavía no puedo convertirlo a HTML normal.¿Por qué mis etiquetas "<br />" se convierten a "< br/>"?

var venueaddress = msg.result[0].venueaddress; 
    var venueaddress2 = venueaddress.replace("[newline]", "<br />"); 

       alert(venueaddress2); //shows <br /> 


$("#venueaddress").text(venueaddress2); //lets now display it on the browser 

<li><h3>Venue Address</h3><p><strong> <span id="venueaddress"></span> </strong></p></li> 

Sin embargo cuando se hace en el navegador, tiene la < br/> y hay Fore no hay ningún salto de línea.

+3

puede pegar código donde anexa HTML a su página –

+0

¿Está codificando el código HTML antes de almacenarlo en la base de datos? ¿Y estás tratando de mostrar el HTML con la marca intacta? –

+0

revise esta publicación http://stackoverflow.com/questions/1147359/jquery-decode-html-entities – Samich

Respuesta

7

Su problema es con

$("#venueaddress").text(venueaddress2); 

se debe utilizar

$("#venueaddress").html(venueaddress2); 

texto codificará cualquier carácter HTML y se mostrará en lapso tan codificado, html no lo hará.

+0

Gracias, lo he echado de menos. – jini

2

Presumiblemente porque cuando lo está insertando en el DOM, lo está insertando como texto y no como HTML.

Dado que no ha mostrado el código que está utilizando para hacer eso, es difícil decirlo con certeza, o decir cuál es la mejor manera de cambiarlo, por lo que espera que HTML sea.

+0

tenía toda la razón – jini

0

Tus datos html están siendo "escapados". Esto evita que las personas envíen la etiqueta <script> a personas desprevenidas en su navegador.

Solución: primero deberá determinar si su problema es un "error" o una "función".

Escapar html suele ser una buena cosa. Especialmente si el único problema es uno de presentación.

Por ejemplo, una solución puede ser insertar caracteres de nueva línea en lugar del elemento br.

Cuestiones relacionadas