Foros del Web » Programando para Internet » Javascript »

Caracteres HTML en Javascript

Estas en el tema de Caracteres HTML en Javascript en el foro de Javascript en Foros del Web. Hola chicos. Tengo el siguiente Codigo: Código HTML: <code id= "codigo" > <input type= "text" value= "€ &lt; &quot; &gt; ' &amp; " /> </code> ...
  #1 (permalink)  
Antiguo 12/09/2009, 10:08
Avatar de chicohot20  
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años, 8 meses
Puntos: 43
Caracteres HTML en Javascript

Hola chicos.

Tengo el siguiente Codigo:

Código HTML:
<code id="codigo">
<input type="text" value="€&lt;&quot;&gt;'&amp;" />
</code>

<script>
alert(document.getElementById("codigo").innerHTML);
</script> 

En la siguiente Imagen estan las pruebas(al ejecutar el código):



Porque se ve diferente en IE? porque cambia el value del input?
COMO PUEDO TRATAR LOS CARACTERES ESPECIALES HTML EN JAVASCRIPT?

Última edición por chicohot20; 12/09/2009 a las 11:01
  #2 (permalink)  
Antiguo 12/09/2009, 15:03
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 9 meses
Puntos: 1485
Respuesta: Caracteres HTML en Javascript

es bastante curioso y todavia no lo tengo muy claro. parece que los navegadores tienen sus preferencia en como mostrar el codigo fuente y especificamente cuando tiene entidades. por ejemplo, las entidades sigma, copyright y registered se muestran como un caracter simple (comprobado en Fx3, iexplorer7, y chrome2) en innerHTML en lugar de la entidades &sum; &copy; &reg;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 12/09/2009, 15:39
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 1 mes
Puntos: 126
Respuesta: Caracteres HTML en Javascript

Hola

¿Has probado a usar su número en vez de su nombre? Separo el amp para que no se ejecuten

€& #60;& #34;& #62;'& #38;

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 12/09/2009, 16:56
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 9 meses
Puntos: 1485
Respuesta: Caracteres HTML en Javascript

¡sigo pensando que es bastante intrigante esta cuestion! en el siguiente codigo he usado la sugerencia de Adler. fijense las entidades dentro del input y fuera, especialmente en iexplorer. me hace pensar si tiene algo que ver con que el atributo value es CDATA o si son simples capricho de cada navegador. nota: quitar los guiones en las entidades.
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CDATA</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
</head>

<body>
<p id="code">&lt; &gt; &-#060; &-#062; &-#038; &amp; &-#174; &-#169; &reg; &copy;
<input value="&lt; &gt; &-#060; &-#062; &-#038; &amp; &-#174; &-#169; &reg; &copy;" /></p>
<script type="text/javascript">
alert(document.getElementById('code').innerHTML);
</script>
</body></html>
el resultado que obtuve
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 12/09/2009 a las 17:02
  #5 (permalink)  
Antiguo 13/09/2009, 07:15
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 1 mes
Puntos: 126
Respuesta: Caracteres HTML en Javascript

Algo mas aproximado a lo que buscamos sería esto

Cita:
<%
Dim caracteres
caracteres = "&lt; &gt; &-#060; &-#062; &-#038; &amp; &-#174; &-#169; &reg; &copy;
"
%>

<p id="code">
<input type="text" value="<%=Server.HTMLEncode(caracteres)%>" /></p>
<script type="text/javascript">
alert(document.getElementById('code').innerHTML);
</script>
Claro está usamos lenguaje del lado del servidor(ASP). Digo al mas aproximado por que esto

&-lt;

quedaría como

&amplt;

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 13/09/2009, 10:19
Avatar de chicohot20  
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años, 8 meses
Puntos: 43
Respuesta: Caracteres HTML en Javascript

Bueno chicos les agradezco a todos por sus respuestas, pero definitivamente no le encuentro solucion a esto. Al ingresar datos a mi BD desde una pagina web, hay cinco caracteres especiales que los transformo a HTML: & ' < > " --- &amp; ' &lt; &gt; &quot; Estoy usando Jquery para una tabla dinamica, utilizo el innerHTML para cargar contenido dinamico, éste innerHTML es el problema, por ejemplo el &lt; lo cambia a < y no lo carga en el otro contenedor tal como es(Esto solo pasa con IE).

Ejemplo:

<div id="origen">
<input type="text" value="Juan &quot;&gt; Perez" />
</div>

Tengo el div origen, y cargo su contenido en el div destino y lo pasa así:

<div id="destino">
<input type="text" value="Juan "> Perez" />
</div>

Obviamente hay un error en este codigo.

Tendré que buscar otras opciones.
  #7 (permalink)  
Antiguo 13/09/2009, 10:46
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años, 2 meses
Puntos: 56
Respuesta: Caracteres HTML en Javascript

y si el & lo reemplazas por &amp; ?

Código javascript:
Ver original
  1. origen.replace("&","&amp;");

o desde el servidor.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #8 (permalink)  
Antiguo 13/09/2009, 13:53
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 1 mes
Puntos: 126
Respuesta: Caracteres HTML en Javascript

Hola

Pensando en voz alta

¿Y si usar el value del text en vez de innerHTML?. Veamos, la idea sería esconder el div destino, ante el evento que sea darle valor al text y mostrar el div

Cita:
document.getElementById("destino").value = "Juan &quot;&gt; Perez";

<div id="destino">
<input type="text" value="" />
</div>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:52.