Bueno, tengo este trabajo menos el hecho de tenerlo funcionando una vez que llame con Fancybox a través de AJAX.
Trabajos de ejemplo estático:
<iframe id="videourl1" width="640" height="340" src="" frameBorder="0"></iframe>
<iframe id="videourl2" width="640" height="340" src="" frameBorder="0"></iframe>
<iframe id="videourl3" width="640" height="340" src="" frameBorder="0"></iframe>
$("div.video-container iframe").each(function(){var idAdd=$(this).attr("id");$(this).attr("src","http://www.youtube.com/embed/"+idAdd+"?rel=0&autoplay=0&modestbranding=1&showinfo=0&autohide=1")})
Ahora, cuando tomo esto y coloco los 3 iframes en archivos .txt y los llamo desde un archivo index.html usando la llamada fancybox2-ajax, falla:
Index.html:
<a id="1" class="fancybox fancybox.ajax" href="text/1.txt">Link</a>
<a id="2" class="fancybox fancybox.ajax" href="text/2.txt">Link</a>
<a id="3" class="fancybox fancybox.ajax" href="text/3.txt">Link</a>
Los archivos de texto contienen los iframes:
<iframe id="videourl" width="640" height="340" src="" frameBorder="0"></iframe>
¿Cómo puedo codificar el JS para decir que se ejecute cada vez que AJAX llama al iframe?
Respuestas
0 para la respuesta № 1Puedes usar el callback de fancybox afterLoad
para ejecutar javascript una vez cargado el contenido.
Sin embargo, parece innecesario saltar a través de todos estos aros para cargar un video en lugar de solo usar el asistente de medios:
<a class="fancybox-media" href="http://www.youtube.com/watch?v=opj24KnzrWo">Youtube</a>
<script type="text/javascript">
$(document).ready(function() {
$(".fancybox-media").fancybox({
helpers : {
media : {}
}
});
</script>
});
-2 para la respuesta № 2
Responder:
$(".fancybox").fancybox({
afterShow: function () {
$("div.video-container iframe").each(function () {
var idAdd = $(this).attr("id");
$(this).attr("src", "http://www.youtube.com/embed/" + idAdd + "?rel=0&autoplay=0&modestbranding=1&showinfo=0&autohide=1")
});
}
});