2011-12-06 56 views
0

好吧,这里是我遇到的问题,我有一个来自brightcove的视频,我有一个事件监听器添加了他们的api关闭fancybox 2.0模式窗口后播放完成。但偶数监听器没有发生,因为fancybox是从div复制内容而不是javascript,所以事件监听器没有被激活。jQuery FancyBox与Brightcove问题.addeventlistener功能

这里是代码

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

任何意见或解决方案?

回答

0

谢谢你的消息,但事实上,我想通了这是我的一个巨大的混日子我打电话的fancybox这样

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

其余的心不是重要的,因为这就是什么是打破它的.html(),但无论它很高兴现在固定

0

我已经完成了这个与VIMO,但通常我创建一个单独的HTML页面与脚本来运行视频。然后,我使用iframe模式在Fancybox中打开该页面(type:'iframe')。

对于vimeos的听众,我有:

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

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

其中的伎俩。

望着相似之处,我想你的情况这应该工作:

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

无论如何,如果使用iframe的检查API的文档,以正确的格式和语法,但jQuery.fancybox.close();parent.jQuery.fancybox.close();,应该在任何情况下工作

+0

谢谢你的消息,但事实上,我想通了这是我的一部分 我打电话的fancybox巨大混日子像这样 jQuery.document()。ready(function(){if(document.location.hash ==='#video'){jQuery.fancybox.open(jQuery.fancybox.open [jQuery.fancybox.open(jQuery.fancybox.open ').html(), 其余的不重要,因为那是什么打破了它.html(),但无论什么高兴它现在修复。 –

+0

很高兴你解决它。希望这个线程能够帮助未来的其他人。 – JFK