Hola, soy usuario de Xajax desde hace algo más de un año, aunque nunca he llegado a utilizarlo en profundidad.
Lo que quiero realizar no se si es posible, y es que a través de una llamada con Xajax al servidor me pinte entre otras cosas un banner publicitario (en este caso de ImpresionesWeb, aunque he probado también con TradeDoubler).
Lo vemos más fácil en un ejemplo:
Código PHP:
function cargaEstadisticas($jor,$IDcompeticion,$capaDestino) {
$respuesta = new xajaxResponse();
$salida = estadisticas($jor,$IDcompeticion);
$publicidadIW =
'<div id="publicidadIW468x60" style="margin-top:10px">CAPA IMPRESIONESWEB - A continuacion deberia ir Banner 468x60:<br>
<script language="javascript" type="text/javascript">
iw_ad_ancho=468;
iw_ad_alto=60;
iw_ad_formato="ad_468x60";
iw_ad_cad="xxxxxxxxxxxxxxxxxxxx";
iwsrcplus="code.impresionesweb.com/r/banner_iw.php?idrotador=xxxyyy&tamano=468x60&lgid="+((new Date()).getTime() % 2147483648) + Math.random();
document.write("<scr"+"ipt language=javascript type=text/javascript src=\""+iwsrcplus+"\"></scr"+"ipt>");
</script>
<noscript><iframe src="alt.impresionesweb.com/noscript.php?tam=468x60&idp=xxxyyy&ref=zzzyyy&cod=xxxyyy" width="468" height="60" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe></noscript>
</div>';
$respuesta->assign($capaDestino,"innerHTML",$salida.$publicidadIW);
return $respuesta;
}
Cuando realizo la llamada a esta función me devuelve y me pinta todo el código HTML, incluido el contenido de la variable $publicidadIW, pero no me pinta el banner.
Imagino que lo que está pasando es que la respuesta sólo pinta lo que hay entre los <script> y </script>, pero no ejecuta su contenido.
He probado también a llamar a ese trozo de Javascript usando la función xajax script(), pero esto me saca el banner en una nueva ventana en blanco, y el navegador se queda leyendo indefinidamente.
También hay que tener en cuenta que hay que andar con cuidado ya que está terminantemente prohibido modificar los códigos publicitarios, y no se hasta que punto se pueden realizar pruebas.
A ver si alguien me ofrece alguna pista. Un saludo