2015-11-12 3 views
0

У меня есть видео с iframe iframe, и я хочу закрыть его, когда он закончится. Это должно работать, но это не так. Запуск fancybox и видео отображается правильно, но ни один из console.log не появляется. Что я делаю не так?Закрыть youtube video iframe после завершения не работает

 $.fancybox({ 
      href: "https://www.youtube.com/embed/8CR-zM6jwD8?rel=0&autoplay=1", 
      type: "iframe", 
      beforeShow: function() { 
       // Find the iframe ID 
       var id = $.fancybox.inner.find('iframe').attr('id'); 
       // Create video player object and add event listeners 
       var player = new YT.Player(id, { 
        events: { 
         'onStateChange': function (event) { 
         console.log('onStateChange fired'); 
          if (event.data === 0) { 
           console.log('ended'); 
           $.fancybox.close(); 
          } // if 
         } // onStateChange 
        } // events 
       }); // YT.Player 

       loadPage(); 
      }, // beforeShow 
     }); // fancybox 

JSFIDDLE

+0

Привет, пожалуйста, сделать скрипку –

+0

@ P.Frank Готово! Спасибо человеку –

+0

Ницца! Пожалуйста, разместите свое решение для других людей, у которых есть одна и та же проблема. –

ответ

3

onStateChange возвращение событие, но не представляется возможным доступ непосредственно. вам нужно также onReady. И я удаляю конец вашего добавочного видео autoplay=1 и заменяю на enablejsapi. Работа отлично теперь

Пожалуйста, попробуйте: http://jsfiddle.net/d6egj2sq/

+0

Отлично! Это работает. Зачем нужно иметь событие onReady? И что и почему параметры '& enablejsapi = 1 & wmode = opaque'? Что они делают и зачем мне нужны для этого? –

+1

Если вы добавите автовоспроизведение в URL-адресе, ваш vidéos будет играть автоматически, потому что это параметр, но не 'YT.player', который играет это. 'onReady' получить, когда ваши« YT.player »полностью заряжены видео. Когда заряжается, функция воспроизведения активируется. Параметр ¤enablejsapi' предназначен для получения ответа api. –

Смежные вопросы