Проблема jQuery FancyBox с функцией Brightcove .addeventlistener - PullRequest
0 голосов
/ 06 декабря 2011

Хорошо, ребята, вот проблема, которая у меня возникла, у меня есть видео из Brightcove, и мне добавили прослушиватель событий из их API для закрытия модального окна fancybox 2.0 после завершения воспроизведения. но четного прослушивателя не происходит, потому что fancybox дублирует содержимое из div, но не javascript, поэтому прослушиватель событий не активируется.

вот код

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

Есть идеи или решения?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

Спасибо за сообщение, но на самом деле я понял, что это был огромный бред с моей стороны, я так называю fancybox, как это) но все, что рад его исправить сейчас

0 голосов
/ 06 декабря 2011

Я сделал это с помощью vimeo, но обычно я создаю отдельную HTML-страницу со сценарием для запуска видео. Затем я открываю эту страницу в Fancybox, используя режим iframe (type:'iframe').

Для слушателя Vimeos у меня есть:

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

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

, который делает трюк.

Глядя на сходство, я думаю, в вашем случае это должно работать:

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

В любом случае, проверьте правильность формата и синтаксиса в документации вашего API, но jQuery.fancybox.close(); или parent.jQuery.fancybox.close();, если используется iframe, в любом случае должно работать

...