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
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
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