Foros del Web » Programando para Internet » Javascript »

Problema innerHTML y <scripts>

Estas en el tema de Problema innerHTML y <scripts> en el foro de Javascript en Foros del Web. Buenas, Estoy haciendo una pequeña aplicacion en la que obtengo desde javascript los datos de un tag XML que tiene el siguiente aspecto: <contenido tipo="html"> ...
  #1 (permalink)  
Antiguo 14/07/2009, 09:21
 
Fecha de Ingreso: julio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Problema innerHTML y <scripts>

Buenas,
Estoy haciendo una pequeña aplicacion en la que obtengo desde javascript los datos de un tag XML que tiene el siguiente aspecto:

<contenido tipo="html">
<![CDATA[
<script type="text/javascript">
document.getElementById("container").innerHTML='Pr ueba';
</script>
<div id="container"></div>
]]>
</contenido>

El script no es este, pero me sirve de ejemplo para que veais lo que quiero hacer.

Posteriormente, una vez parseado el XML con javascript, en la variable javascript donde obtengo estos datos se almacena lo siguiente:
<script language="text/javascript">
document.getElementById("container").innerHTML='Pr ueba';
</script>
<div id="container"></div>

Pues bien, lo que quiero hacer es que esto se ejecute dentro de un div (como innerHTML digamos), es decir que lo que he intentado hacer es: midiv.innerHTML = datosXML;
Pero con esto no consigo nada, porque resulta que he estado mirando y no se pueden poner scripts dentro de innerHTML, así que, de que manera podria conseguir esto?

Muchas gracias por la ayuda,
Un saludo

Última edición por propse; 14/07/2009 a las 11:03
  #2 (permalink)  
Antiguo 14/07/2009, 10:56
 
Fecha de Ingreso: julio-2009
Ubicación: Jaén
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Correcciones

Hola propse
Tu script tiene algunos errores. El primero, el tag <script> no lo has puesto bien. Puedes poner:
<script type="text/javascript"> (este es el más recomendable)
O también
<script language="Javascript"> (este ya está obsoleto).
Pero no lo que tu has puesto, ya que has cogido varios atributos, los has cambiado... en principio eso es lo único que le veo, luego lo pruebo y si le saco algún error te lo digo.
  #3 (permalink)  
Antiguo 14/07/2009, 10:59
 
Fecha de Ingreso: abril-2009
Mensajes: 99
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema innerHTML y <scripts>

Quizas puedas colocar el script directamente en el div y mostrarlo/ocultarlo según necesites.
  #4 (permalink)  
Antiguo 14/07/2009, 11:01
 
Fecha de Ingreso: julio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema innerHTML y <scripts>

mm perdon, fue un lapsus al escribir este script de ejemplo, efectivamente es type="text/javascript" y asi lo tengo puesto en mi script, pero no consigo hacerlo funcionar.

Y respecto a lo que dices alegg, eso seria una solucion , pero siempre y cuando el script fuese siempre el mismo, pero no es asi.

Me refiero a que el script esta dentro de un CDATA de un XML, junto con texto html y demas, pero ese script digamos que lo define el usuario, y el usuario es el que dispone del archivo XML, por lo que es como "programar" en html sobre xml, y luego mi aplicacion lo parsea y lo muestra todo dentro de un div (cosa que ahora mismo hace correctamente, pero unicamente con el HTML que esta dentro de CDATA, el codigo javascript se lo come, y creo que es problema del innerHTML).
  #5 (permalink)  
Antiguo 14/07/2009, 18:01
 
Fecha de Ingreso: julio-2009
Ubicación: Jaén
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema innerHTML y <scripts>

Puedes hacer un script cualquiera y ponerlo entre los DIVs, a mi me funciona así:

<div id="container">
<script type="text/javascript">
document.getElementById("container").innerHTML="Ho la mundo";
</script>
</div>

Así, esto lo que hace es cambiar lo que hay entre un DIV. Perdón si no te entiendo.
  #6 (permalink)  
Antiguo 14/07/2009, 18:10
 
Fecha de Ingreso: julio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema innerHTML y <scripts>

Claro eso si se puede hacer, pero lo que yo quiero hacer seria algo parecido a esto:

document.getElementById("container").innerHTML="<s cript type='text/javascript'>CUALQUIER_SCRIPT</script>Hola mundo";

Es decir poner todo el contenido del div en el innerHTML (incluido el script, que repito, es variable)

Un saludo y gracias por las respuestas.
  #7 (permalink)  
Antiguo 15/07/2009, 05:16
 
Fecha de Ingreso: julio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema innerHTML y <scripts>

Bueno he solucionado con una pequeña "ñapa" el problema...
Para el que le interese, lo que he hecho ha sido obtener lo que hay dentro de las etiquetas de <script></script> (es decir, el propio script) de todo el codigo HTML que proporciona el usuario, y al tener la "string" con el propio script, lo que hago es crear un elemento script con DOM y ponerle como atributo text la string con el script, y posteriormente hago un appenChild del elemento script creado al head.

Personalmente prefiero la opcion de no tener que hacer esto y que poniendo scripts en innerHTML funcionase, pero como no he logrado hacerlo, por lo menos esto funciona...

Un saludo.

Última edición por propse; 15/07/2009 a las 05:35
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 18:35.