2015-11-12 73 views
0

我有一個YouTube的視頻iframe,我想在它結束時關閉它。 這應該是工作,但事實並非如此。 fancybox啓動並且視頻正確顯示,但是沒有出現console.log。我究竟做錯了什麼?關閉youtube視頻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

如果您在網址中添加自動播放功能,則您的視頻播放會自動播放,因爲它是一個參數,但不是播放此內容的「YT.player」。當你的'YT.player'完全收費的視頻時'onReady'得到。充電時,播放功能被激活。參數¤enablejsapi'用於獲取api響應。 –

相關問題