jQuery FancyBox-probleem met Brightcove .addeventlistener-functie

Oké jongens hier is het probleem dat ik heb, ik heb een video afkomstig van brightcove en ik heb een gebeurtenislistener toegevoegd vanuit hun api om het fancybox 2.0 modale venster te sluiten nadat het afspelen is voltooid. maar de even luisteraar gebeurt niet omdat fancybox de inhoud van de div dupliceert, maar niet het javascript, zodat de gebeurtenislistener niet wordt geactiveerd.

hier is de code

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

Om het even welke ideeën of oplossingen?

0

2 antwoord

Ik heb dit gedaan met vimeo, maar meestal maak ik een afzonderlijke html-pagina met het script om de video uit te voeren. Vervolgens open ik die pagina in Fancybox met behulp van de iframe-modus ( type: 'iframe' ).

Voor de luisteraar van vimeos heb ik:

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

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

wat de truc doet.

Kijkend naar de overeenkomsten, ik denk dat in uw geval dit zou moeten werken:

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

Hoe dan ook, raadpleeg de documentatie van uw API voor de juiste indeling en syntaxis, maar jQuery.fancybox.close (); of parent.jQuery.fancybox.close (); als u iframe gebruikt, zou in elk geval moeten werken

0
toegevoegd
Blij dat je het hebt gerepareerd. Ik hoop dat deze thread iemand anders in de toekomst zal helpen.
toegevoegd de auteur JFK, de bron
Bedankt voor het bericht, maar ik heb het echt uitgezocht, het was een enorme mop van mijn kant. Ik noemde fancybox zoals dit jQuery.document (). Ready (function() {if (document.location.hash === '#video' ) {jQuery.fancybox.open ([{content: jQuery ('. video'). html (), de rest is niet belangrijk, want dat is wat het de .html() breekt, maar alles wat blij is, is nu opgelost.
toegevoegd de auteur Clark T., de bron

Bedankt voor het bericht, maar ik bedacht dat het een enorme schoffer was van mijn kant. Ik noemde fancybox zo

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

de rest is niet belangrijk want dat is wat het de .html() breekt, maar alles wat blij is, is nu opgelost

0
toegevoegd