De hecho, logré activar un enlace de fancyBox solo desde un archivo JS externo usando el evento "en vivo":
Primero, agregue el evento de clic en vivo en su futuro ancla dinámica:
$('a.pub').live('click', function() {
$(this).fancybox(... fancybox parameters ...);
})
Luego, agregue el ancla al cuerpo:
$('body').append('<a class="iframe pub" href="your-url.html"></a>');
Luego active el fancyBox "haciendo clic" en el ancla:
$('a.pub').click();
El enlace de fancyBox ahora está "casi" listo. ¿Por qué "casi"? Porque parece que necesita agregar un retraso antes de activar el segundo clic, de lo contrario, el script no está listo.
Es un retraso rápido y sucio usando alguna animación en nuestro ancla, pero funciona bien:
$('a.pub').slideDown('fast', function() {
$('a.pub').click();
});
Aquí tienes, ¡tu fancyBox debería aparecer cargado!
HTH