Question

Bon les gars, voici le problème que j'ai, j'ai une vidéo provenant de Brightcove et j'ai un écouteur d'événement ajouté à partir de leur API pour fermer la fenêtre modale de fancybox 2.0 une fois la lecture terminée.mais l'auditeur pair ne se produit pas car fancybox duplique le contenu de la div mais pas le javascript, donc l'écouteur d'événement n'est pas activé.

voici le 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 -->

Des idées ou des solutions?

Était-ce utile?

La solution 2

Merci pour le message, mais je me suis rendu compte que c'était une énorme gaffe de ma part que j'appelais fancybox comme ça

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

le reste n'est pas important parce que c'est ce qui le brise le .html () mais quoi qu'il en soit heureux, c'est corrigé maintenant

Autres conseils

J'ai fait cela avec vimeo mais généralement je crée une page html séparée avec le script pour exécuter la vidéo.Ensuite, j'ouvre cette page dans Fancybox en utilisant le mode iframe (type:'iframe').

Pour l'auditeur des vimeos, j'ai:

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

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

ce qui fait l'affaire.

En regardant les similitudes, je suppose que dans votre cas, cela devrait fonctionner:

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

Quoi qu'il en soit, vérifiez la documentation de votre API pour le bon format et la bonne syntaxe, mais jQuery.fancybox.close(); ou parent.jQuery.fancybox.close(); si vous utilisez iframe, devrait fonctionner dans tous les cas

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top