Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Ejecutar código JavaScript añadido dinámicamente

14 de mayo de 2014

Necesito ejecutar un código JavaScript que carga un banner de forma dinámica. Donde este código se ejecuta se crea un <div> que contiene la imagen del banner.

He pensado inyectar ese script dentro de una capa del layout con innerHTML y lo hace bien pero el código Javascript no se ejecuta.

Tengo que insertarlo así porque en una platilla de Joomla el banner tiene que salir entre dos capas.

¿Alguna solucion?

Gracias


Respuestas

#1

Como no podemos ver cómo es el código de tu sitio web y no sabemos las restricciones que tienes para ejecutar Ajax o no, la recomendación básica sería utilizar la función eval(). Algo así:

<div id="banner"></div>
// cadena de texto con el código a ejecutar
var codigoEjecutable = '
    <script> ... document.write("<img src=\" ... \" />"); ... </script>
';
 
// guardar el código a ejecutar dentro del <div>
var div = document.getElementById('banner');
div.text = codigoEjecutable;
 
// ejecutar el código del <script> con la función eval()
var scripts = div.getElementsByTagName('script');
eval(scripts[0].text);

@javiereguiluz

14 mayo 2014, 15:19
#2

La solucion propuesta está bien. Yo iba hacer esto:

function cargarBannerLateral() {
    adnxs.megatag.load({ size: '300x250', promoSizes: ['300x600'] });
}
var capa = document.getElementById("slideshow-57");
capa.onLoad = cargarBannerLateral();

Al final Joomla tiene un manera de meter codigo HTML puro y ha funcionado.

Muchas gracias Javier. Ahora a refrescar conocimientos con tu libro de Javascript.

@antoniogarcia78

14 mayo 2014, 16:45