Foros del Web » Programando para Internet » Javascript »

como interpretar codigo html en variable javascript

Estas en el tema de como interpretar codigo html en variable javascript en el foro de Javascript en Foros del Web. Hola amigos: lo que quiero hacer: 1º Usar ckeditor para que el usuario maquete un texto. (esto funciona) 2º Guardar ese texto con sus <p><div> ...
  #1 (permalink)  
Antiguo 20/03/2012, 04:53
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Pregunta como interpretar codigo html en variable javascript

Hola amigos:

lo que quiero hacer:

1º Usar ckeditor para que el usuario maquete un texto. (esto funciona)
2º Guardar ese texto con sus <p><div> etc en base de datos (esto funciona)
3º Recuperar dicho texto de base de datos e interpretarlo, que no salga con <p><div> etc (esto funciona)
4º Recortar el texto, pero no por numero de palabras si no por numero de renglones. (para ello he encontrado un script muy util que aui lo dejo)

Código Javascript:
Ver original
  1. <script>  
  2.             Array.prototype.inArray=function(el){  
  3.             for(var i=0,l=this.length;i<l;i++)  
  4.             if(this[i]==el)  
  5.             return true;  
  6.             return false;  
  7.             }  
  8.             onload=function(){  
  9.             var txt='<span>'+document.getElementById('headline').innerHTML.split('').join('</span><span>')+'</span>';  
  10.             document.getElementById('headline').innerHTML=txt;  
  11.             var t='';  
  12.             var cuenta=[];  
  13.             for(var i=0, l=document.getElementById('headline').getElementsByTagName('span'),ll=l.length;i<ll;i++){  
  14.             if(!cuenta.inArray(l[i].offsetTop))  
  15.             cuenta.push(l[i].offsetTop);  
  16.             if(cuenta.length<2)  
  17.             t+=l[i].innerHTML;  
  18.             else{
  19.             if(document.getElementById('headline').innerHTML.length>t.length)
  20.             t+='';
  21.             break;
  22.             }
  23.             }  
  24.             document.getElementById('headline').innerHTML=t;  
  25.             }  
  26.         </script>

(esto funciona), PERO me da un error y es que no me interpreta los <p><div> ... si no que me los muestra,

Mi pregunta es:

¿Como puedo indicarle a la variable "t" del script de arriba decirle que lea las etiquetas html ?

Gracias.

PD: para la implementacion del script de arriba solo hay que poner la id del div en cuestion... ejemplo de acorde con el texto de arriba:

Código HTML:
Ver original
  1. <div id="headline"> aqui tu texto o tu variable </div>



Gracias por la ayuda de antemano!
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #2 (permalink)  
Antiguo 21/03/2012, 15:19
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: como interpretar codigo html en variable javascript

por lo que he entendido del código, al final obtienes un string
Cita:
"<p>aqui tu texto o</p> <div>tu variable</div>"
con lo cual no se ejecutarán los tags

una posible opción será
Cita:
document.getElementById('headline').getElementsByT agName('*') // colección de todos los tags
recorres la colección e imprimes los dos primeros elementos, concatenandoles algún tag (div, p, ..)
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 21/03/2012, 16:16
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
Puntos: 1485
Respuesta: como interpretar codigo html en variable javascript

¡buenas!
no comprendo lo que quieres hacer. fíjate que estas tomando el código html del elemento #headline y luego separas cada caracter ubicandole un SPAN antes y después. si el elemento #headline tiene elementos, entonces estas separando también el código. es decir, si tienes <b>bold</b>, el resultado es <, b, >, b, o, l, d, <, /, b, >. cuando agregas la variable txt al innerHTML de #headline, los caracteres < > se neutralizan a &lt; y &gt;. por tanto, lo que ves es el código html. ¿qué exactamente pretendes hacer? dices que ŕecortar el texto por número de renglones. ¿podrías explicar eso?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 21/03/2012, 17:03
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: como interpretar codigo html en variable javascript

zerokilled, creo entender que con renglones se refiere a bloques

antes me precipité al exponer lo primero que se me ocurrió. ahora pensando creo que quiere algo como esto
Cita:
onload=function(){
var txt=document.getElementById('headline').innerHTML. match(/(<[^>]+>)([a-z\xc0-\xff\.,-\s]+)(<\/[^>]+>)/gim), imprime = '';

for(var i = 0; i <= txt.length; i++) {
if (i <= 1) {
imprime += txt[i];
} else {
break;
}
}

document.getElementById('headline').innerHTML = imprime;
}


<div id="headline">
<div>Lorem ipsum dolor sit amet consectetuer adasdas</div>
<p>adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis</p>
<div>nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat. vel illum dolore eu feugiat</div>
<div>nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</div>
</div>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: funcion, html, interpretar, variables
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 21:05.