Pregunta

Bien chicos, aquí está el problema que tengo, tengo un video que proviene de Brightcove y tengo un oyente de eventos agregado desde su API para cerrar la ventana modal Fancybox 2.0 después de que se complete la reproducción. Pero el oyente incluso no está sucediendo porque Fancybox está duplicando el contenido del DIV, pero no del JavaScript, por lo que el oyente del evento no se está activando.

Aquí está el código

   <!-- Start Brightcove API -->
   <script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/APIModules_all.js"></script>
   <script type="text/javascript">
       var bcExp;
       var modVP;
       function onTemplateLoaded(experienceID) {
           alert("EVENT: TEMPLATE_LOAD");
           bcExp = brightcove.getExperience(experienceID);
           modVP = bcExp.getModule(APIModules.VIDEO_PLAYER);
           modVP.addEventListener(
           BCMediaEvent.COMPLETE, 
           function(event) {
               alert("EVENT: Close Modal Activated");
               jQuery.fancybox.close(true);
           }
       );
       }

       /*   
       function onTemplateLoaded(experienceID) {
           alert("EVENT: TEMPLATE_LOAD");
           bcExp = brightcove.getExperience(experienceID);
           modVP = bcExp.getModule(APIModules.VIDEO_PLAYER);
           modVP.addEventListener(BCMediaEvent.COMPLETE, closeModal);
       }
       function closeModal(event) {
           alert("EVENT: Close Modal Activated");
           jQuery.fancybox.close(true);
       }
        */
   </script>
   <!-- End Brightcove API -->

¿Alguna idea o solución?

¿Fue útil?

Solución 2

Gracias por el mensaje, pero en realidad lo descubrí que era un gran tonto de mi parte al que llamaba Fancybox como este.

jQuery.document().ready(function() { 
if (document.location.hash === '#video') { 
jQuery.fancybox.open([{ 
content: jQuery('.video').html(), 

El resto no es importante porque eso es lo que lo está rompiendo el .html () pero lo que sea contento que se arregle ahora

Otros consejos

He hecho esto con Vimeo, pero generalmente creo una página HTML separada con el script para ejecutar el video. Luego abro esa página en Fancybox usando el modo iframe (type:'iframe').

Para el oyente de Vimesos tengo:

function endOfVideo() {
  parent.$.fancybox.close();
}

vimeoAPI.api_addEventListener("onFinish","endOfVideo"); 

que hace el truco.

Mirando las similitudes, supongo que en su caso esto debería funcionar:

modVP.addEventListener(
 BCMediaEvent.COMPLETE, function(){parent.jQuery.fancybox.close();}
);

De todos modos, consulte la documentación de su API para el formato y la sintaxis correctos, pero jQuery.fancybox.close(); o parent.jQuery.fancybox.close(); Si usa iframe, debe funcionar en cualquier caso

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top